Что делать, если Вы установили GNU/Linux?
Автор: Raj Shekhar, Anirban Biswas, Jason P Barto and John Murray
Перевод: Юрий Прушинский


1. Чат / Онлайн-общение в Linux
2. Печать
3. Установка и удаление программ с помощью RPM

1. Чат / Онлайн-общение в Linux

1.1 История возникновения чатов

Большинство обычных пользователей думают, что GNU/Linux им совсем не подходит, и что это система только для компьютерных маньяков. Например, многие уверены, что они не смогут делать такие простые вещи как общаться в чате, потому что в Линуксе нет клиентов типа Instant Messenger для Yahoo, MSN или ICQ - хотя это совершенно не так, ведь чат впервые появился именно в UNIX (а Linux это UNIX-подобная свободная операционная система).

talk была первой программой для чата в UNIX ещё задолго до того как Microsoft начала захватывать Интернет. В то время компьютерный мир был свободной страной и вы могли свободно обмениваться программами с кем угодно и изменять их для своих нужд - примерно так, как пытается донести до нас Free Software . talk всё ещё доступна для UNIX и GNU/Linux .

Вскоре после talk, появились и другие варианты чатов. Сначала появился IRC, а затем за дело взялись многие компании и сейчас мы уже пользуемся ICQ, Yahoo, MSN, Jabber, AIM и др.

Давайте взглянем на каждую из чат-систем поближе....

1.2 talk

Этот простейший чат всё ещё популярен в некоторых Сетях. Если в вашем учебном заведении или офисе у вас есть доступ только к UNIX или Linux-терминалу, то при помощи этой программы вы сможете общаться с друзьями. Для этого всего лишь необходимо, чтобы был запущен talk-сервер.

Далее, для того чтобы пообщаться со своим другом надо выполнить следующую команду:

[anirban@anirban anirban]$ talk <username>@host  <tty>
т.е., если имя друга raj (такое же как и его логин в системе), а имя его компьютера www.anyhost.com, то команда будет выглядеть так:
[anirban@anirban anirban]$ talk [email protected]

Вы, наверное, спросите "что значит tty"? Представим, что ваш друг открыл много терминалов - так вот под tty подразумевается номер того терминала, на который вы посылаете сообщение. Номера начинаются с 0 и могут содержать только целые числа.

Всё вышеописанное можно сделать и при помощи команды write.

[anirban@anirban anirban]$ write <username@host>  <tty>

Если же вы не хотите принимать никакие приглашения в чат, то вы можете выполнить команду:

[anirban@anirban anirban]$ mesg n
для того чтобы потом снять эту блокировку, выполните
[anirban@anirban anirban]$ mesg y

Если вы любитель GUI и мощных клиентов Yahoo и MSN, то вы наверняка не будете в восторге от такого чата, но для многих из тех, кто любит GNU/Linux, подобная старомодная система чата вполне подходит (скорее это дело привычки и необходимости - прим.перев.) [привычка -- вторая натура -- прим.ред.].

1.3 IRC, или Internet Relay Chat

IRC появился после talk, и по сей день остаётся популярным. Если вы хотите получить настоящее удовольствие от чата без флуда (болтовни ни о чём) и прочей дряни от Yahoo и MSN, то настоятельно рекомендую вам IRC. К тому же, во многих "комнатах" (в IRC именуемых каналами) вы можете найти реальную помощь в освоении GNU/Linux, программировании на С\С++, настройке вашей Линукс-машины и пр. (Кстати, могу поделиться из своего личного опыта - я когда-то чатился в Yahoo, и на самом деле не смог найти чего-то более интересного чем флуд и 4-5 парней, выдающих себя за девчонок. Зато из IRC я получал реальную помощь, так необходимую в тот момент.)

1.3.1 Основные концепции IRC

IRC отличается от Yahoo и MSN в том смысле, что IRC не принадлежит никакой компании. IRC настолько же свободен, как и GNU/Linux, и поддерживается добровольцами.

Ещё одно существенное отличие в том, что вам не обязательно заводить свой ID или пароль. Вы спросите, а что же вместо этого? Да просто выбираете себе псевдоним (ник) и хост (IRC-сервер), и подключаетесь. Поскольку IRC не управляется никакой компанией, то вам необходимо знать адрес хоста, так же как вы знаете адрес (URL) страницы в Интернете, которую собираетесь посетить. Можете взять адреса разных хостов в Интернете, равно как и узнать и тематику обсуждаемых на канале вопросов. Например, irc.openprojects.net посвящен развитию open source проектов и их разработчикам.

Итак, вы указываете свой ник и адрес сервера, если такой ник уже занят, то выбираете себе другой.

Новичкам в IRC советую сначала посетить IRC Primer.

1.3.2 Программы для IRC

Для IRC существует много программ, но, думаю, что лучшим сейчас является Xchat. Он входит в состав большинства дистрибутивов, так что если он у вас не установлен по умолчанию, то проверьте нет ли его на установочных CD. Если его там нет, то можете скачать его с http://www.xchat.org. Он доступен и в RPM-формате, так что с установкой проблем возникнуть не должно.

1.3.3 Настройка Xchat

После установки выполните команду xchat в терминале или кликните на иконке xchat (меню Main Menu > Internet > Chat).

Появится первое окно Xchat. Введите свой ник, можно ввести несколько разных ников сразу, чтобы программа автоматически выбирала ваш уникальный ник, в случае если один из них уже участвует в канале. Можно ввести своё реальное имя, на самом деле не обязательно вводить всё самому, программа может сгенерировать его из вашего логина и реального имени.

Далее выбираете из списка интересующий вас хост, и кликаете на кнопку "Connect". Появится окно, в котором будет отображаться ход подключения. После подключения, появятся правила, которых принято придерживаться в данной конференции. Поскольку IRC не принадлежит какой-либо компании, а поддерживается в основном добровольно многими добросердечными людьми, пожалуйста, постарайтесь не нарушать эти правила, иначе вас могут отключить. Администраторы каналов в IRC очень строги в отношении соблюдения правил. (Поэтому чатиться в IRC намного интереснее чем в Yahoo и MSN).

Итак, после успешного подключения вы увидите небольшое текстовое окно, в котором можно писать ответы, а также команды управления. Все команды начинаются с символа / ("слэш"). Чтобы получить список каналов данного хоста, наберите /list. Вы увидите список всех каналов, теперь выберите интересующий вас канал и выполните /join #[имя_канала]. Обратите внимание, что перед любым названием канала всегда должен стоять символ #.

После этого вы подключитесь к каналу и сможете начать общаться. Справа будет список всех собеседников по данному каналу, выделив любого из них вы получите некоторую информацию о нём/ней. Там же, справа, есть много кнопок, с помощью которых вы можете либо заблокировать собеседника, либо получить информацию о нём, либо пригласить его в персональный чат или даже обменяться файлами по IRC.

Ну, что ж, думаю, теперь вы спокойны насчёт общения по IRC. Может даже когда-нибудь встретите и меня в каком-нибудь канале. Я обычно общаюсь на irc.openprojects.net в канале #linux.

1.4 Instant Messaging (Онлайн-общение)

1.4.1 ICQ

Существует множество ICQ-клиентов под GNU/Linux, но, наверное, самым популярным сейчас является Licq. Его обычно можно найти в разделе Internet или Network главного меню KDE или просто вызвав из терминала командой licq. При первом запуске программа попросит вас зарегистрироваться на сервере ICQ и получить ID и пароль. Далее вы просто подключаетесь к сети ICQ точно также как и в любой Windows-версии ICQ-клиента. (Не знаю, исправлена ошибка в новых версиях Licq или нет, но он (Licq) не мог самостоятельно создавать пользователей, поэтому приходилось пользоваться веб-интерфейсом для доступа к www.icq.com и уже таким образом регистрироваться. Либо прибегать к услугам Windows-клиентов. Прим.ред.)

1.4.2 Yahoo!

Yahoo имеет собственного клиента для Линукс, который очень похож и на Windows-версию, за исключением некоторых деталей. Подробнее можно узнать на yahoo.

Могу лишь ещё добавить, что вследствие своей схожести с Windows-версией, в версии под Линукс вы также найдёте кнопки типа Add Friends, Your Status, Ban' и прочие сходства. Yahoo Messenger также умеет обмениваться файлами, приглашать людей в групповой чат, а также отправлять уведомления на email.

1.4.3 AIM

Kit

довольно неплохой клиент AIM под Линукс (KDE). Его также можно обнаружить в главном меню в секции Internet/Network, или просто выполнив команду kit в терминале. При первом запуске программа попросит вас создать профиль, так что если у вас нет учётной записи в AOL, то вам надо будет сначала зарегистрироваться на их сайте. Кстати, в последней версии Netscape тоже есть встроенный AIM-клиент.

1.4.4 Jabber (от редактора)

Странно, что автор совсем не упомянул о Jabber. А ведь это стоит того. Технология, используемая в Jabber-серверах имеет ряд преимуществ, которыми не обладают ICQ или Yahoo -- назову три наиболее значимых:

  1. Децентрализованность.
  2. JOSL/GPL лицензия.
  3. Возможность подключения транспортов для icq, yahoo, msn, irc (это то, что видел "в живую", возможно их больше). Эта особенность, на мой взгляд, наиболее интересна для обычных пользователей -- если у вас есть респонденты, подключенные к разным системам IM, вы сможете с ними общаться из одного клиента.

Из jabber-клиентов для Linux могу назвать следующие: Gabber, Psi, Tkabber (хотя их намного больше, общий список ищите на http://www.jabberstudio.org) Эти клиенты входят в состав большинства дистрибутивов. Лично мне понравился Tkabber, jabber-клиент написанный на Tcl/Tk. Я использую его как в среде Linux, так и в Windows. Проект постоянно развивается и идёт в ногу со временем -- оперативно вносятся изменения и т.п. Кроме этого, и это на мой взгляд немаловажно, в Tkabber можно настроить спеллинг и отслеживать ошибки при наборе. Какой IM-клиент может похвастаться этим? За детальной информацией обращайтесь на http://www.jabber.ru.

Для любителей красивостей советую посмотреть в сторону Psi. Есть версия и для Linux и для Windows. Из его особенностей можно выделить возможность подключения к нескольким аккаунтам на jabber-серверах.

Gabber? Gabber написан на движке Gtk, но что-то слишком часто он падад у меня в "корку", поэтому я практически не использовал его.

1.5 IM Клиенты типа "Все-в-одном"

1.5.1 Everybuddy

Специально для тех, кто пользуется сразу несколькими чат-клиентами. Everybuddy - это Open Source IM-клиент, который работает с AIM, ICQ, MSN, Yahoo! и Jabber, а также умеет обмениваться файлами. Другими словами, Everybuddy может выполнять функции любого отдельно взятого чат-клиента. Если Everybuddy не входит в состав вашего дистрибутива, то можете загрузить его с домашней страницы проекта Everybuddy .

1.5.2 GAIM

Ещё один клиент типа "все-в-одном", в чём-то похожий на AIM, но ко всему прочему работает с AIM, ICQ, MSN, Yahoo! и др. Если он не входит в состав вашего дистрибутива, то взять его можно с домашней страницы GAIM.

2. Печать

2.1 Какой принтер можно использовать

Сперва необходимо убедиться, что ваш принтер вообще поддерживается в Линукс. Хотя большинство из принтеров от Epson, Canon и HP уже поддерживаются, некоторые из самых дешевых моделей, в которых отсутствующая аппаратная часть эмулируется программно (под Windows), вероятно не будут работать в виду отсутствия программ для поддержки этих моделей под Линукс. На самом деле я бы не советовал вообще покупать подобные модели принтеров, так как по сравнению с полноценными устройствами они значительно уступают в производительности.

Можно взглянуть на список поддерживаемых в Линукс принтеров здесь linuxprinting.org. В нижеприведенном примере я использовал RedHat 7.3 и принтер HP 810c.

2.2 Подключение принтера к компьютеру

После выбора модели принтера, посмотрите каким образом он подключается к компьютеру, т.е. какой интерфейс он использует - USB (универсальная последовательная шина) или параллельный порт. Большинство принтеров используют параллельный порт, но современные модели уже предлагают два интерфейса на выбор. Мой принтер (HP 810c) относится как раз к разряду таких, но для подключения я выбрал старый добрый параллельный порт. Итак, после подключения принтера переходим к настройке программной части.

2.3 Установка принтера

В состав Red Hat (начиная с версии 6.1) входят все необходимые для установки принтера инструменты, но чем старее их версии, тем сложнее их настраивать. Далее я буду основываться на RH 7.3 и KDE, хотя то же самое вполне применимо и для GNOME.

2.3.1 Программа настройки

Теперь для установки принтера проделайте следующее:

  1. В KDE запустите "kontrol panel" и затем кликните на "Printer Configuration".
  2. Выбираете "New", после чего запустится мастер настройки (в Red Hat 7.1 и 7.2 запустится не мастер а просто окно настройки, но тем не менее, процедура настройки практически такая же)
  3. Теперь следует указать тип принтера, т.е. "Network Printer" или "Local Printer" (соответственно - сетевой или локальный). Выбираете локальный принтер, поскольку подключен он непосредственно к вашей машине. Также необходимо указать имя для принтера. Имя может содержать буквы алфавита, цифры, символ подчёркивания ("_") или дефис ("-"). Далее нажимаем кнопку "New".
  4. Если это обычный принтер, то его интерфейс будет определён автоматически. Если нет, то придётся указать его самостоятельно. Например, если он подключен к первому параллельному порту, то указать надо /dev/lp0, если ко второму порту - то /dev/lp1 и т.д. Далее опять жмём "Next".
  5. Теперь нам предстоит выбрать драйвер для принтера - в предложенном списке можно найти драйверы для большинства распространённых моделей. В списке представлены различные фирмы-производители (такие как HP, Canon, Epson...), выберите нужного производителя, дважды кликните на нём и выберите необходимую модель принтера.
  6. Выбрав свою модель, вы сможете обнаружить что для вашего принтера есть несколько драйверов, разработанных разными людьми. Вообще лучше выбирать тот драйвер, который предоставляют сами производители принтеров, например, драйвер "hpijs" предоставлен фирмой HP.
  7. Наконец, нажав кнопку "Finish", возвращаемся в основное окно. Теперь можно нажать "Apply" и затем "Save Changes" в меню "File" главного окна.
  8. Далее, в том же меню "File" главного окна выберите "Restart lpd". Эта команда перезапустит демон (процесс) принтера, и теперь ваша система готова к печати (В последнее время система LPD уступает место CUPS. Прим.ред.).
  9. Проверить корректность установки принтера можно выполнив "Test" в главном меню.

Если у вас возникли проблемы при настройке принтера, то можно обратиться за помощью к документу The Linux Printing HOWTO

3. Установка и удаление программ с помощью RPM

3.1 Что такое RPM?

RPM это аббревиатура от Red Hat Package Manager. RPM является простым в использовании и гибким инструментом для установки, удаления, обновления и сборки программных пакетов. Есть и другие аналогичные системы (к примеру DEB из Debian), но на сегодняшний день RPM наиболее популярен, и именно на нём основаны дистрибутивы Red Hat, Mandrake, SuSE и многие другие.

3.2 Что такое программный пакет?

В GNU/Linux программы обычно распространяются в виде единых файлов, называемых RPM-пакетами. (Корректней было бы сказать, что для rpm-based дистрибутивов программы распространяются в rpm-пакетах. Как для настольных операционных систем мир не заканчивается на Windows, так и не единным rpm жив Linux. :-) Прим.ред.) Эти пакеты содержат в себе непосредственно сами файлы программы, документацию к ней или man-страницы, описание программы или её назначение, линки для запуска программы и иконки, а также информацию о том, куда должен быть установлен каждый файл из пакета. Кроме того в пакете содержится информация о том, какие файлы необходимы для работы программы (так называемые зависимости), сколько необходимо свободного места на диске и т.п. Сегодня некоторые программы содержат сотни и более файлов, так что такой способ установки и удаления программ в виде единого пакета значительно облегчает жизнь. Когда вы устанавливаете rpm-пакет, он распаковывается на отдельные файлы, которые затем устанавливаются в соответствующие им места. Кроме этого, перед установкой RPM проверяет наличие в системе файлов, необходимых для работы программы (отслеживает зависимости). Ещё одной функцией RPM является ведение единой базы данных всех программных пакетов, установленных в вашей системе. Это позволяет быстро узнать, какие именно пакеты установлены, какие файлы принадлежат определённому пакету или наоборот, какой пакет содержит определённый файл.

3.3 Работа с RPM

Вы можете работать с RPM из командной строки или предпочесть графические программами, являющиеся облочками к RPM. В состав KDE входит неплохая программа kpackage, аналогичные ей есть и в других графических средах, а некоторые дистрибутивы Линукс, например Mandrake, имеют собственные утилиты для работы с RPM. Я, например, обычно пользуюсь kpackage для удаления ненужных пакетов, а командной строкой для всего остального, хотя, на самом деле, не имеет большого значения какой утилитой вы пользуетесь. Несомненно, огромным преимуществом для вас будет освоение работы с RPM в командной строке. Во-первых, потому что такая утилита есть в любом RPM-дистрибутиве Линукс, независимо от используемой графической оболочки, к тому же она позволяет управлять пакетами на машинах, на которых нет Х-Window. (Что очень удобно и актуально для тех компьютеров, где проблематично запустить не только KDE, но и "иксы" как таковые. Прим.ред.) Во-вторых, это возможность использовать шаблоны ( * ) для одновременной установки группы пакетов, например, так: rpm -ivh mysql*

Да, и имейте в виду, что для установки, удаления или обновления пакетов вы должны обладать привилегиями root, хотя делать запросы к базе rpm может любой пользователь.

3.4 Установка программных пакетов

Во всех нижеприведённых примерах мы будем в качестве образца пользоваться пакетом с веб-браузером Mozilla. Для его установки сначала перейдите в каталог, содержащий нужный пакет, причем независимо от того, какой программой установки rpm вы пользуетесь (конечно, это справедливо не для всех менеджеров rpm! - прим.перев.) [не совсем так, менджер rpm один, а вот фронт-эндов к нему множество: текстовые -- apt (вариант для rpm) и yum, графические -- kpackage, synaptic (графическая надстройка над apt, котрый является надстройкой над rpm), redhat-config-packages и т.д. -- прим.ред.]. Каталог может находиться на вашем установочном CD с Линукс, или в вашем домашнем каталоге. Далее, в командной строке выполняем следующую команду:

rpm -ivh mozilla-0.9.8-10mdk.i586.rpm
(ваша версия Мозиллы может быть и другой...) Учтите, что писать полное имя файла необходимо только если пакет ещё не установлен, если его часть уже установлена, то можно указать просто основное имя пакета (в нашем примере достаточно написать "mozilla"). И не забудьте использовать клавишу табуляции для автозаполнения длинных имён файлов. Если же вы предпочитаете графические утилиты, то просто кликните на rpm-файле в любом файловом менеджере (например в Konqueror), и программа управления rpm запустится сама, либо кликните на файле правой клавишей мыши, и воспользуйтесь командой "Open With" ("Открыть с помощью"), в обоих случаях в итоге нужно просто нажать кнопку "Install".

3.5 Обновление пакетов

Обновление уже установленных пакетов практически аналогично установке. В командной строке за это отвечает ключ U:

rpm-Uvh mozilla-0.9.8-10mdk.i586.rpm
Для kpackage или аналогичных утилитах это кнопка "Update".

3.6 Откат на старую версию пакета

А что же если вы обновили, а потом обнаружили, что старая версия программы вам больше по душе? Тогда можно воспользоваться опцией командной строки "--oldpackage", например вот так:

rpm -Uvh --oldpackage mozilla-0.9.8-10mdk.i586.rpm

3.7 Удаление пакетов

Формат команды удаления при помощи командной строки выгядит следующим образом:

rpm -e mozilla
(полное имя пакета не обязательно)

Либо запустите вашу графическую утилиту, из списка установленных пакетов выделите подлежащий удалению, и нажмите кнопку "Uninstall". Учтите, что если в том пакете, который вы собираетесь удалить, есть файлы, необходимые для других программ, то появится сообщение о невозможности удаления. Эти зависимости можно проигнорировать командой:

rpm -e --nodeps mozilla
или выбрав "Ignore Dependencies" (в графич. утилитах). Только учтите, что это нарушит работу других программ.

3.8 Просмотр пакетов

Просмотр всех установленных пакетов довольно прост. В командной строке выполните:

rpm -qa
Если список очень большой и не умещается целиком на экране (а это более чем вероятно!), то для прокрутки всего списка воспользуйтесь конвеером и "скормите" список утилите less:
rpm -qa | less
Графические утилиты обычно показывают список установленных программ при их запуске.

3.8.1 Просмотр всех файлов, установленных пакетом

Это можно сделать, выполнив команду rpm -ql. Применительно к нашему примеру с mozilla это будет выглядеть так:

rpm -ql mozilla
В графической утилите просто выберите пакет, а затем нажмите кнопку "File List" (или аналогичную по смыслу). Просмотр же всех файлов, входящих в ещё не установленный пакет, можно выполнить командой rpm -qpl. Последняя требует полного имени файла, т.е.
rpm -qpl mozilla-0.9.8-10mdk.i586.rpm. (Полное имя подразумевает не только имя файла, но и путь к нему, если вы в данный момент находитесь в другом подкаталоге. Прим.ред.)

3.8.2 Просмотр описания установленного пакета

Просмотр может быть выполнен при помощи команды rpm -qi. К примеру:

rpm -qi mozilla
В графической утилите просто кликните на интересующем вас пакете. Чтобы просмотреть другую информацию о ещё не установленном пакете, воспользуйтесь командой rpm -qpi. Для неё также необходимо указать полное имя файла. Например:
rpm -qpi mozilla-0.9.8-10mdk.i586.rpm
В графической утилите для этого нужно просто выделить интересующий вас пакет, или просто кликнуть на нём в своём файловом менеджере (типа Konqueror)

3.8.3 Как определить, к какому пакету принадлежит файл?

Чтобы определить, к какому пакету принадлежит файл, можно воспользоваться командой rpm -q --whatprovides. Пример:

rpm -q --whatprovides/usr/lib/mozilla/xpicleanup

3.8.4 Чтобы определить все пакеты, от которых данный пакет имеет зависимости

Воспользуйтесь командой rpm -qR следующим образом:

rpm -qR -mozilla
(Для ещё не установленного пакета используйте rpm -qpR с полным именем файла )

3.9 Разрешение проблем с зависимостями

Одна из самых частых проблем при установке rpm-пакетов это несоответствия в зависимостях. Вам вероятно уже знакома подобная ситуация, если вы устанавливали новые программы в Windows, которые затем отказывались запускаться и выдавали ошибку типа "Не найдена динамическая библиотека ****.dll" (думаю, что сейчас мало кто с такой ошибкой может познакомится, обычно такие ошибки вылетают при запуске программ, установленных простым копированием или без инсталляторов - прим.перев.) [или кривым инсталлятором -- прим.ред.].

В GNU/Linuх может возникнуть аналогичная ситуация, за тем лишь исключением, что RPM сообщит вам об этом непосредственно перед установкой программы. Большинство таких проблем с зависимостями можно решить еще на этапе установки Линукс - например может помочь установка GNOME и KDE, даже если вы не собираетесь использовать один из них, т.к. множество программ используют библиотеки из их состава.

А что же делать, если RPM выдаёт вам сообщение что программа не может быть установлена из-за отсутствия такого-то пакета или файла? Всё просто до смешного - берёте и записываете на бумажку или в любимый текстовый редактор имена отсутствующих пакетов\файлов, и затем ищете их на своих установочных CD. Чтобы посмотреть какие файлы содержатся в ещё не установленном пакете, можно использовать команду rpm-qpl. (Хм.. Таким способом можно только отпугнуть пользователей. Советую взглянуть на пакет urpmi, отслеживающий зависимости и устанавалиающий недостающие пакеты. Или установите и настройте yum или apt. Прим.ред.) Практически всегда проблему удаётся решить, установив пару недостающих пакетов, хотя иногда новые зависимости порождают ещё большие неудовлетворённые зависимости, так что процесс установки может надолго затянуться. (что меня чрезвычайно "бесит" во всей системе RPM - вышеописанное автором называется "RPM-hell", который намного ужаснее чем "DLL-hell" в Windows! Те дистрибутивы, которые основаны на RPM уже абсолютно не совместимы между собой, и даже не думайте ставить например пакет от Mandrake в Redhat! Лучше уж собрать его из исходников - с ними вы быстрее научитесь обращаться, прежде чем Линукс-сообщество слезет с иглы RPM - прим.перев. )

3.10 Использование RPMFind и RPMBone

Существуют и другие полезные инструменты для поиска файлов и пакетов, одним из них является RPMFind website. Напишите название пакета в строке ввода на главной странице сайта и нажмите кнопку "search", после чего перед вами появятся ссылки и другая информация о пакете. Довольно часто искомый пакет уже есть на ваших установочных CD - при помощи RPMFind можно узнать, на каком именно. Также RPMFind предоставляет информацию о зависимостях для пакета; имена файлов в этом списке указывают на пакет, в состав которого они входят. Обычно там же присутствует и ссылка на домашнюю страницу пакета. RPMBone - ещё один сайт, который может помочь вам в поиске RPM-пакетов, работает он по аналогии с RPMFind. RPMBone имеет более гибкую систему поиска: например, вы можете фильтровать результаты поиска только для определённой архитектуры или дистрибутива. Также вы найдёте ссылки для скачивания с огромного количества ftp-серверов. Хотя оба этих поисковых сайта очень схожи, но если вам будет необходимо найти пакет с определённым файлом для разрешения зависимости, то начать стоит именно с RPMFind.

3.11 Циклические зависимости

Иногда случаются и циклические зависимости. Например, когда пакет А не устанавливается из-за отсутствия пакета В, а при попытке установить В, RPM сообщает что не установлен пакет А. В такой ситуации надо воспользоваться опцией "-nodeps". К примеру:

rpm -ivh --nodeps mozilla-0.9.8-10mdk.i586.rpm
В графических утилитах для этого достаточно нажать кнопку "Ignore Dependencies" .

3.12 Проблемы с версиями библиотек

Иногда пакет отказывается устанавливаться из-за того, что файл библиотеки старой версии. Это можно поправить обновив соответствующий пакет, в который входит эта библиотека. Тем не менее, хоть более новые библиотеки обычно обратно-совместимые со старыми версиями, но иногда пакет требует определённую версию библиотеки, старее уже установленной. В этом случае можно сделать откат пакета на предыдущую версию, что в свою очередь, может нарушить работу других программ. Также можно создать символическую ссылку с именем той необходимой старой библиотеки, которая будет ссылаться на новую. Пример: пакет, который вы хотите установить, требует файла foo.so.3, а у вас в /usr/lib уже установлен foo.so.4. Тогда вы делаете следующее (с правами root):

ln -s /usr/lib/foo.so.3 /usr/lib/foo.so.4

3.13 Средства автоматического разрешения зависимостей

Средства автоматического разрешения зависимостей есть в составе некоторых дистрибутивов. Например, в Mandrake это urpmi, в RedHat - up2date, а в Ximian - RedCarpet. Есть ещё также системы наподобие apt4rpm. Практически все из них умеют автоматически скачивать и устанавливать необходимые пакеты. За подробностями обратитесь к документации к вашему дистрибутиву или на соответствующий сайт.

3.14 Разное

3.14.1 Несовместимость версий RPM

С подобной проблемой вы вряд ли столкнётесь, если только у вас не совсем уже устаревшая версия дистрибутива Линукс. Ранние версии дистрибутивов создавались RPM версий 3.х, и поэтому потом было невозможно работать с пакетами версий 4.x. Исключением является только версия 3.05, до которой можно порекомендовать обновиться, если вы категорически не хотите менять версию дистрибутива. RPM версий 4.х является обратно-совместимым с ранними версиями.

3.14.2 Midnight Commander

Иногда бывает необходимо скопировать файлы из RPM-пакета без его установки. Это можно сделать файловым менеджером mc (сокр. от Midnight Commander). Хотя кому-то он может показаться ужасным (в fido7.ru.linux до сих пор можно встретить полемику на эту тему -- прим.ред.), на самом деле он довольно удобен. Он входит в состав многих дистрибутивов (хотя и не всегда устанавливается по-умолчанию (скорее всегда не устанваливается по умлочанию на RedHat и Mandrake, дистрибутивы ALTLinux в этот "чёрный список" не попали. -- прим.ред.)), и запускается командой mc. В нём вы можете работать с пакетами как с обычными папками, и копировать из них отдельные файлы.

3.14.3 Рекомендуемая литература

Данная статья описывает лишь самые основы работы с RPM, и если вы хотите узнать больше, то обратитесь к ман-страницам (команда man rpm), или по следующим ссылкам:
RPM One Liners - небольшой обзор, автор Brian Jones, лучше чем скачивать и распечатывать полное руководство
The RPM HOWTO - "Официальный" HOWTO от Linux Documentation Project.
Maximum RPM - Чрезвычайно подробный обзор практически всех возможностей RPM. (При написании данной статьи использовались все вышеперечисленные источники)

Продолжение следует...


Copyright (c) 2003, Raj Shekhar, Anirban Biswas, Jason P Barto and John Murray. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 88 of Linux Gazette, March 2003


Команда переводчиков:
Александр Куприн, Андрей Киселев, Александр Михайлов, Александр Саввин, Владимир Меренков, Иван Песин, Игорь Яровинский, Павел Соколов, Роман Шумихин, Сергей Скороходов, Юрий Прушинский

Со всеми предложениями, идеями и комментариями обращайтесь к Александру Куприну (ru_classic at mail.ru). Убедительная просьба: указывайте сразу, не возражаете ли Вы против публикации Ваших отзывов в рассылке.

Сайт рассылки: http://gazette.linux.ru.net
Эту статью можно взять здесь: http://gazette.linux.ru.net/lg88/shekhar.html
Архивы выпусков находятся здесь: http://gazette.linux.ru.net/archive/