Пример 9А: Практика работы с pyWings

Теперь, когда вы знаете несколько команд, давайте попробуем использовать их на практике. Программа, которую вы установите в этом примере, не сложная, и, по общему признанию, глуповатая, это приложение — оракул, которое называется pyWings (см. Рис. 9-7). Она даст вам непонятные руководства в ответ на любые ваши запросы.

linux

Рис. 9-7: В поиске ответов от pyWings

Чтобы использовать pyWings, наберите что-нибудь, что вас волнует, в окошке, а затем щелкните на одну из соответствующих иконок слева (сам, другой, мир), и на одну — справа (любовь, работа, правда), а затем жмите на большую кнопку, которая напоминает половину глаза. Оракул известит вас, что он хочет вам сообщить. Например, я задал вопрос, что делать, если я хочу разбогатеть, выбрал «сам» и «правда». На Рис. 9-8 показан мудрый совет, который я получил.

110010 A rush to the ending frightens it away*

is a pendant Though below lh? chain, л leads.

Is an mde* The las! Is lh& first to liie hasty

is an umbrella upjucned. it catches Ihe ratn.

I a. single shoe Whatever fc quality, it has no worth

is a missing loom. what Is hope to the young, is tele to the Ш.

oncern: self realm trulh

Рис 9-8: Мудрые изречения PyWings

Как вы видите, оракул сообщил мне: «Гонка за конечным результатом только отдаляет его», который я интерпретировал как призыв к терпению — если я буду слишком торопиться, то буду жить на одну зарплату.

pyWings написана на языке программирования Python, которая создает скрипты (язык сценариев), а не обычные программы. Вы найдете об этом более подробную информацию в Главе 11. Сейчас я хочу упомянуть об одном отличии — вам не надо устанавливать pyWings; просто скопируйте ее на жесткий диск в домашнюю папку Home и запускайте оттуда, примерно так.

9A-1: Скачивание файлов pyWings

Теперь вы готовы к установке pyWings, но перед этим вы должны скачать необходимые файлы. Прежде всего, вам необходима сама pyWings, которую вы можете скачать с домашней страницы проекта на http://pywings.sourceforge. net/download.html. Прокрутите страницу вниз до секции Linux/ Linux/Xl 1 и щелкните по ссылке HTTP, которая даст вам возможность скачать файл pywings-l.O.l.tar.gz (окончание .tar.gz говорит о том, что это архивированный файл tarball — ответ Linux на архиваторы ZIP). Поместите файл в папку Tarballs_and_RPM, которая находится в домашней папке Home.

Для работы PyWings необходим tkinter, один из нескольких графических интерфейсов скриптов Python, устанавливаемых на вашу систему, а tkinter имеет три собственных взаимозависимых файла, которые должны быть также установлены — это ваш первый реальный опыт общения с dependency hell (не совместимости). К счастью, это не очень усложнит задачу, так как все файлы имеются на вашем инсталляционном диске. Вы можете просто скопировать эти файлы на ваш жесткий диск знакомым методом перетаскивания, но поскольку мы изучаем командную строку, давайте воспользуемся другим способом.

9A-2: Копирование tkinter и связанных с ним файлов на жесткий диск

Файлы tkinter, itcl и tix находятся на инсталляционных дисках Fedora (или Red Hat). Перед их копированием на жесткий диск, используем команду mkdir для создания специальной папки внутри домашней, где разместим файлы RPM:

1. Откроем новое окно Терминала, набрав mkdir expRPMS и нажав ENTER. Теперь, когда у вас есть папка, в которой будут размещены файлы RPM, самое время скопировать их с CD в папку expRPMS, которую вы только что создали. Для этого вы должны воспользоваться командами cd (смена директории) и ср (копирование).

2. Вставьте инсталляционный Диск 2 (или Диск 3 для Red Hat 9 и версии Fedora Core на трех CD ) в привод и ждите, когда он автоматически смонтируется.

3. В окне Терминала задайте команду cd для папки RPMS на инсталляционном диске, набрав следующую строчку и нажав ENTER:

cd /mnt/cdrom/Fedora/RPMS/ (для пользователей Red Hat 9 это будет, конечно, /mnt/cdrom/RedHat/RPMS/).

Теперь скопируете файлы RPM в папку expRPMS на жестком диске, набирая следующие командные строки и нажимая ENTER каждый раз (не забывайте заменять username на ваше имя пользователя): cp tkinter* /home/username/expRPMS/ cp itcl* /home/username/expRPMS/ cp tix* /home/username/expRPMS/

ПРИМЕЧАНИЕ

На предыдущем шаге вы использовали специальный символ, маленькую звездочку (*), вместо того, чтобы набирать полное название файла (например, tix* вместо tix-8.L4-93.i386.rpm), чтобы не перетруждать свои пальцы. Специальные символы(*) - это «быстрые клавиши». Когда вы набираете tix*, вы сообщаете системе, что надо копировать что-то, заканчивающееся на tix. Как видите, надо быть предельно внимательными, когда вы будете копировать самостоятельно, потому что по окончаниям вы можете переписать уйму ненужных файлов.

4. В Терминале команда cd вернет вас в домашнюю директорию, для этого наберите cd и нажмите ENTER.

5. Другие зависимые файлы — We, tk, должны уже были быть инсталлированными, если вы следовали моим инструкциям в Главе 2, но вы можете проверить это сами, используя команду rpm с флагом -q (запрос). Наберите rpm -q tk и нажмите ENTER. Если файл tk уже инсталлирован, Терминал выведет название файла и номер версии: tk-8.3.5-93, или какой-либо другой версии. Обратите внимание, что не нужен пароль суперпользователя для команды rpm в этом случае, потому что, вы ничего не инсталлируете, и, поэтому, вам не надо ничего записывать на диск

в территорию root.

Если Терминал сообщил вам, что tk уже инсталлирован в вашей системе,

переходите к секции 9A-3. Если Терминал вывел сообщение, что пакет tk не

установлен, то вам придется еще немного попотеть.

Если вы пользователь Fedora Core, размонтируйте диск, который находится

в вашем приводе сейчас, и вставьте Диск 1. Появится маленькое окно,

спрашивающее у вас, хотите ли вы запустить /mnt/cdrom/autorun? Просто

нажмите No. Когда появится иконка диска на Рабочем столе, используйте

окно Терминала для команды cd, чтобы переписать файлы с диска в папку

RPMS, набрав cd /mnt/cdrom/Fedora/RPMS/ и нажав ENTER.

Если вы пользователь Red Hat Linux 9, то пакет tk будет находиться на

инсталляционном Диске 3, поэтому вам не надо будет менять диск в

приводе. Просто следуйте описанным выше шагам, заменяя Fedora на

RedHat.

6. Теперь скопируйте пакет tk RPM в папку expRPMS, набрав следующую команду и нажав ENTER:

cp tk* /home/username/expRPMS/

9A-3: Установка tkinter и связанных с ним файлов

После того, как tkinter и все связанные с ним RPM файлы скопированы, вы можете инсталлировать их друг за другом, используя двойной клик мыши,

как было описано в Главе 8. Но поскольку, мы знакомимся с командной строкой, почему бы не попробовать ее? Вы знаете как работает альтернативный метод командной строки, который позволяет устанавливать одновременно четыре файла, убив, как говорится, одним махом всех зайцев. Это хороший пример того, как командная строка может сэкономить время.

Поэтому, сдержите ваши порывы и доставьте мне удовольствие, выполнив следующее:

1. Откройте новое окно Терминала, и перейдите в root, набрав команду su и нажав ENTER.

2. Наберите ваш пароль суперпользователя и нажмите ENTER.

3. Наберите cd expRPMS и нажмите ENTER. Вы попадете в новую папку expRPMS folder.

ПРЕДОСТЕРЕЖЕНИЕ

На следующем шаге вы можете использовать специальный символ(*), чтобы команда грт установила все файлы, оканчивающиеся .rpm в папке expRPMS. Но перед этим убедитесь, что в ней находятся три или четыре пакета RPM, которые вы собираетесь инсталлировать.

4. Наберите rpm -Uvh *. rpm и нажмите ENTER.

Процесс установки начнется, и вы увидите ход выполнения задания в окне Терминала. Когда индикатор выполнения достигнет отметки 100%, вы вернетесь в окно root, и ваш Терминал будет выглядеть, как показано на Рис. 9-9. Если все так, значит, вы успешно установили tkinter и все связанные с ним файлы.

linux

Рис. 9-9: Установка пакетов RPM с помощью команды rpm

5. Наберите exit и нажмите ENTER, чтобы выйти из режима

суперпользователя. Вы можете также удалить вашу папку expRPMS, перетащив ее в корзину, для чего щелкните правой кнопкой мыши на ней и выберите Move to Trash (Переместить в Корзину), или с помощью командной строки, набрав rm -г expRPMS и нажав ENTER.

9A-4: Создание папки LocalApps для pyWings

Как я уже говорил, вы можете инсталлировать программу pyWings локально в домашней папке Home. Локальная установка означает, что сама программа и связанные с ней файлы данных будут инсталлированы в домашней папке Home. Это упрощает задачу, но другие пользователи не будут иметь к ней доступ. Также, вы можете по неосторожности удалить ее.

Чтобы обезопасить себя в дальнейшем, создайте специальную папку в Home, где разместите pyWings и другие программы, которые вы будете устанавливать локально в будущем. Логично ее назвать LocalApps. Давайте создадим ее с помощью команды, чтобы попрактиковаться. Вот что надо сделать:

В Терминале убедитесь, что вы находитесь в домашней директории и затем наберите следующую команду и нажмите ENTER: mkdir LocalApps

9A-5: Извлечение pyWings Tarball

Вы уже загрузили pyWings tarball в папку Tarballs_and_RPMs, и теперь настало время извлечь архив. Вы можете сделать это из командной строки, но это кажется таким трудным по сравнению с двойным кликом мышью, поэтому мы остановимся на последнем методе.

1. В окне Tarballs_and_RPMs дважды щелкнем на pywings-l.O.l.tar.gz. Откроется программа File Roller (показанная на Рис. 9-10), которая используется для разархивирования файлов (а также и для создания архивных файлов).

linux

Рис. 9-10: File Roller извлекает и создает архивные файлы

2. Нажмите на кнопку Extract (Извлечь) в главном окне File Roller. Откроется окно File Roller Extract (Рис. 9-11).

Содержание большинства архивов сгруппировано в одной папке, однако в случае с pyWings это не так, как вы, наверно, заметили на Рис. 9-10. Поэтому, вам надо создать папку, в которой вы сможете разместить все файлы pyWings.

3. В окне File Roller Extract в текстовой ячейке конечной папки (показанной на Рис. 9-11) смените расположение по умолчанию на /home/your_user-name/LocalApps/ pyWings/ (конечно, подставив вместо your_username ваше настоящее имя пользователя), и нажмите OK.

4. В маленьком выпадающем окне вам сообщат, что конечная папка (pyWings) не существует, и предложат создать ее. Нажмите Create Folder (Создать папку). Если вы теперь посмотрите на вашу папку LocalApps, вы увидите внутри новую подпапку с именем pyWings, и все файлы программы pyWings внутри нее.

5. Теперь закройте окно File Roller.

linux

Рис. 9-11: Использование File Roller для извлечения архивных файлов

9А-6: Запуск pyWings

Теперь вы сделали все, чтобы использовать программу pyWings, поэтому давайте запустим великого оракула прямо сейчас, чтобы вы знали, как надо поступать в трудных житейских ситуациях.

Убедитесь, проверив в Терминале, что вы находитесь в домашней директории и затем наберите LocalApps/pyWings/pywings.py и нажмите ENTER.

Если вы все сделали так, как надо, pyWings запустится и вскоре сделает вас мудрым человеком.

9А-7:Создание ссылки, по которой можно запускать ру Wings

Тот метод, которым вы запустили pyWings, работает хорошо, но каждый раз открывать Терминал и набирать что-то длинное, чтобы узнать свою судьбу, довольно утомительно. Давайте найдем способ упростить эту операцию.

Для запуска приложения из Терминала, вы обычно набираете его название, или, чтобы быть более точным, название исполняемого файла программы; название программы выполняет в данном случае роль команды. Для того, чтобы система распознала команду, она (исполняемый файл, или ссылка на него) должна находится в том месте, где система может найти ее. Когда вы запускаете любую команду, система проверяет ряд мест (все они расположено в папках bin, где находятся исполняемые файлы), чтобы найти эту команду.

Вы сами можете найти эти места, набрав echo $PATH в новом окне Терминала и нажав ENTER. Как вы можете видеть, в Fedora или Red Hat Linux они находятся в:

• /usr/local/bin

• /usr/bin

• /bin

• /usr/XllR6/bin

• home/username/bin

(Последнюю папку вы создадите сами, когда она вам понадобится.) Если команда, которую вы набрали, находится в одной из этих папок, программа или скрипт запустятся. Но pyWings нет ни в одной из перечисленных папок. Она расположена в /home/username/LocalApps/pyWings и поэтому не видна вашей системе.

Чтобы исправить ситуацию, вы можете добавить путь к скрипту pyWings в список путей, чтобы система могла найти команду запуска и узнала о существовании вашего приложения. Вы столкнетесь с подобными проблемами и дальше в этой книге, а также, возможно, и в вашей долгой жизни в мире Linux. Поэтому, давайте испытаем один метод. Все, что вам надо сделать — это создать ссылку, что-то вроде псевдонима для запуска в одном из мест, где ваша система ищет команды. Для создания ссылки надо использовать три команды: cd (для смены директории), su (для смены режима на root), и In -s (для создания ссылки).

1. В Терминале наберите cd /usr/local/bin и нажмите ENTER. Вы попадете в одну из доступных для поиска папок bin.

2. Наберите su и нажмите ENTER. Вам будет предложено набрать ваш пароль суперпользователя, поэтому введите его и опять нажмите ENTER.

3. Наберите ln -s /home/username/LocalApps/pyWings/pywings.py pywings и нажмите ENTER. (Обратите внимание на пробел между словами pywings.py и pywings в конце командной строки.) Окончание команды pywings — это имя, которое вы дали ссылке; теперь эта ссылка стала командой, с помощью которой вы можете запускать приложение. Если вы ничего больше не наберете, ссылка будет называться pywings.py, поэтому вам придется нажимать более трех клавиш каждый раз, как вы захотите запустить программу.

9A-8: Запуск pyWings еще раз

Теперь, когда вы создали ссылку, запуск программы pyWings стал намного проще. Давайте попробуем.

1. Выйдете из программы pyWings, если она запущена, и затем откройте новое окно Терминала.

2. В новом окне наберите pywings и нажмите ENTER. Ваш милый оракул pyWings вновь появится на экране.

Вы сократили число нажатий клавиш, необходимых для запуска pyWings из Терминала. Однако, если вы хотите использовать ее часто, было бы разумно добавить запуск на вашу Панель или выдвижной ящик, как мы это делали в Главе 3. Двигать и щелкать мышью каждый день приходится чаще, чем работать в командной строке. Обратитесь к Приложению А, чтобы узнать подробнее о спецификациях запуска.

9A-9: Добавление эмблем к папке LocalApps

Теперь, когда pyWings успешно установлена и работает, может быть не плохо было бы добавить эмблему к новой папке LocalApps, чтобы вы по неосторожности не удалили ее в корзину. Вы уже делали нечто подобное в Главе 5, поэтому я не буду давать вам пошаговых инструкций. Я советую вам выбрать эмблему apps.

Еще материалы по теме: