LXF84:Ответы
|
|
|
- Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru
Ответы
Без паники...
В Я установил игру Pipepanic с DVD к LinuxFormat [HotPicks, LXF82] в свою домашнюю директорию и запускаю ее, набрав ./pipepanic в консоли:
cd Pipepanic-0.1.3-source ./Pipepanic
Но не могу добавить соответствующий пункт в меню KDE, поправив меню в Центре Управления KDE: не знаю, что набирать в поле команды. Если я помещаю туда /home/marrea/pipepanic-0.1.3-source/pipepanic, а затем выхожу и щелкаю на добавившемся пункте меню Pipepanic, то вижу лишь кувыркание песочных часов и кнопку на панели задач. Секунд через 30 все исчезает. Это потому, что я установил Pipepanic в свою домашнюю директорию? Marrea, с форума LXF
О Дело вот в чем: запуская игру из меню KDE, Вы находитесь не в директории Pipepanic. Программа должна запускаться из своей директории, чтобы найти нужные ей файлы. Это можно исправить, добавив /home/marrea/Pipepanic-0.1.3-source/ в поле рабочего каталога в редакторе меню KDE – по сути, добавив команду смены каталога перед запуском, которую вы выполняете в консоли. Возможно, также понадобится указать полный путь к файлу. Самый безопасный способ убедиться, что все правильно – воспользоваться диалогами выбора файлов, вызываемых по щелчку на пиктограммах справа от соответствующих полей. Если вы установите опцию запуска в терминале, вы увидите весь вывод программы и, возможно, поймете, в чем проблема. Именно так я узнал, что игре не удалось найти файл. В конец запускаемой команды добавьте что-нибудь вроде ; sleep 5, чтобы окно терминала оставалось открытым еще пять секунд после завершения программы:
/home/marrea/Pipepanic-0.1.3-source/Pipepanic; sleep 5
НБ
Скрупулезный скрипт
В Попытался написать скрипт для резервирования важных данных из домашней директории на USB-диск с помощью rsync, и теперь нахожусь в затруднении: озадачили опции --exclude-from и особенно --include-from. У меня Ubuntu 6.06 и rsync 2.6.6.
Вот приблизительно то, что мне нужно. Во-первых, скопировать нескрытые файлы и директории (включая вложенные), находящиеся в домашнем каталоге /home/dcoldric; исключение – /home/dcoldric/MyDownloads, где поддиректории копировать не надо, только обычные файлы. Еще одно исключение – не хочу резервировать кое-какие нескрытые каталоги, вроде /home/dcoldric/cxoffice.
Все скрытые файлы и директории должны быть проигнорированы, кроме нескольких. Например, я хочу сохранить /home/dcoldric/.netbeans со всеми поддиректориями, а также .bashrc и .bash_aliases. И, наконец, я бы хотел, чтобы структура директорий каталога резервных копий была такой же, как и в моем домашнем каталоге (не считая, конечно, игнорируемых директорий).
Я перепробовал все, что пришло в голову, но безрезультатно. Мой последний вариант выглядел так:
rsync -a --delete --safe-links --exclude-from=/home/dcoldric/bin/backupExcludes /home/dcoldric/ /media/USB/backup/dcoldric
– при следующем содержимом файла backupExcludes:
- /* + /dcoldric/ + /dcoldric/.Creator/ + /dcoldric/.java/ + /dcoldric/.mozilla/ + /dcoldric/.mozilla-thunderbird/ + /dcoldric/.netbeans/ + /dcoldric/.bashrc + /dcoldric/.bash_aliases + /dcoldric/MyDownloads/ - /dcoldric/MyDownloads/*/ - /dcoldric/.* - /dcoldric/cxoffice - /dcoldric/jdk* - /dcoldric/sun -/dcoldric/SUNW*
Однако ничего не работает.
Дэвид Колдрик [David Coldrick]
О Команда rsync по умолчанию копирует все, а опция --exclude задает то, что нужно пропустить. Проще думать, что --include – это --do-not-exclude. Указываемый параметр-файл --exclude-from – фактически файл фильтра. Фильтрация предоставляет контроль, но не имеет варианта --filter-from. Вот более корректный способ использовать фильтр:
--filter=”merge myfilterfile”
Ваш текущий фильтр не работает, поскольку начинается с -/*, то есть с указания игнорировать все. Вы говорите, что ничего не происходит – и Вы правы, но программа тоже права, поскольку делает то, что ей велено. Так как начинает она с первого вхождения, то перенесите -/* в конец. Когда фильтр начинается с /, он считает от указанного исходного пути (в данном случае получается ~/dcoldric), так что удалите /dcoldric из начала каждой строки, иначе rsync припишет это лишний раз и будет искать /home/dcoldric/dcoldric/.mozilla и так далее. Хотя это не относится к Вашему текущему фильтру, следует знать, что
+ /foo/bar/ - /*
ничего не найдет, поскольку /* исключит все каталоги из исходной директории и foo не будет проверяться никогда, значит, /foo/bar не будет найден. Вы должны явно указать сканирование foo:
+ /foo/ + /foo/bar/ - /foo/* - /* + /.netbeans/ + /.bashrc + /.bash_aliases - /MyDownloads/*/ - /.* - /cxoffice - /jdk*
Вызывается он такой командой:
rsync -a --delete --safe-links --filter=”merge ~dcoldric/bin/backupFilter” ~dcoldric/ /media/USB/backup/dcoldric/
Обратите внимание на завершающий каталог назначения /, он может повлиять на результат. НБ