Где и как искать программы
Где и как искать программы, и как их потом устанавливать
Все программы для Linux можно разделить на две большие категории (с подкатегориями):
- программы, имеющиеся в дистрибутиве[1]
- программы, которых в дистрибутиве нет
- но которые можно включить в дистрибутив
- потому что их нельзя включить в дистрибутив
- потому что они вообще не работают в Linux
Далее описаны краткие примерные инструкции что делать во всех этих случаях.
Общая рекомендация: если вам нужна какая-то программа, то
- Сначала поищите её на в тех источниках установки, на которые настроена ваша система управления пакетами.
- Затем поищите нужную программу в других репозитариях ALT Linux, например, используя поиск на сайте http://sisyphus.ru и далее...
- Если нужной программы не оказалось среди пакетов ALT, то найдите в интернете сайт разработчиков программы, и далее следуйте инструкции.
Программа есть на диске пользователя
Если у вас есть CD/DVD диск с дистрибутивом ALT (например тот, с которого вы поставили систему), то поиск и установка нужной программы осуществляется очень просто. Достаточно подключить этот диск в качестве источника установки и использовать программы работы с пакетами, такие как apt-get или synaptic.
Если у вас на жёстком диске есть целый набор rpm-пакетов, и они ещё не организованы в репозитарий, то самое время создать из них репозитарий, подключить его в качестве источника установки, и см. выше.
Если у вас имеется одиночный[2] пакет с нужной программой, то можно попробовать установить его следующим образом:
от рута перейдите в каталог, где лежит нужный пакет и выполните команду apt-get install ./ИМЯ_ФАЙЛА.rpm. Например:
[alexei@threebears tmp]$ su - Password: [root@threebears ~]# cd /tmp [root@threebears tmp]# apt-get install ./kde4plasma-addon-yawp-0.1-alt1.svn20081227.1.i586.rpm Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Выбрано kde4plasma-addon-yawp для './kde4plasma-addon-yawp-0.1-alt1.svn20081227.1.i586.rpm' Следующие НОВЫЕ пакеты будут установлены: kde4plasma-addon-yawp 0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 2 не будет обновлено. Необходимо получить 0B/581kB архивов. После распаковки потребуется дополнительно 1193kB дискового пространства. Совершаем изменения... Preparing... ########################################### [100%] 1: kde4plasma-addon-yawp ########################################### [100%] Running /usr/lib/rpm/posttrans-filetriggers Завершено.
Программа есть в сетевом репозитарии вашей версии
Настройте вашу систему управления пакетами на использование сетевого репозитария, и установите программу обычным способом.
Что делать, если "интернет дорогой"
Иногда случается так, что нужная программа есть в сетевом репозитарии, но подключить и использовать его невозможно, потому что на целевом компьютере дорогой интернет, или вообще нет сети. Можно попробовать скачать нужный пакет и все его зависимости
на другом компьютере, принести все эти пакеты на целевой компьютер, и далее воспользоваться инструкцией по установке одиночного пакета.
Программа есть в сетевом репозитарии другой версии
Самый правильный способ -- повесить в Багзиллу запрос на перенос (портирование) нужного пакета в вашу версию дистрибутива. Однако, этот способ не самый быстрый :)
Еще один неплохой способ -- попробовать собрать нужный пакет "в своём окружении", то есть под свою версию системы. Проще всего это сделать с помощью Hasher. Вам понадобится скачать пакет с исходными текстами нужной программы (src.rpm пакет), и воспользоваться инструкцией по работе с Hasher.
Примечание: сборка в Хашере требует настроенного источника пакетов. В процессе сборки из источника будут получены пакеты на десятки (или даже сотни) мегабайт. Следите за траффиком :)
Еще один способ: пересобрать src.rpm с помощью команды rpm --rebuild (за подробностями в man rpm). При такой пересборке не понадобится выкачивать из источника пакетов те пакеты, которые уже установлены в вашей системе, что может сэкономить время и деньги. Но удовлетворение сборочных зависимостей придётся делать вручную, что требует определённой квалификации. Кроме того, произойдет "засорение" системы devel-пакетами. Метод не рекомендуется неопытным пользователям!
Если сборка программы завершается ошибками, и вашей квалификации не хватает для их устранения, см. первый способ.
Программы нет в дистрибутиве, но ее можно туда включить
Существует огромное множество программ. И ни один дистрибутив не может охватить все это множество.
Почему нужная конкретно вам программа не попала в дистрибутив? Скорее всего потому, что:
- никому из тех, кто обладает достаточной квалификацией, она не нужна (в данный момент)
- программа редкая и/или новая, и о ней просто никто не знает
- в силу различных ограничений (технического или лицензионного характера), программу нельзя включить в дистрибутив.
Что делать в таком случае?
Простой и правильный способ: разместить в Багзилле и рассылки просьбу собрать и поместить нужную программу в дистрибутив. Если это действительно хорошая и нужная программа, то, возможно, найдется тот человек, который захочет и сможет собрать и поместить ее в дистрибутив. Или вам посоветуют аналогичную (возможно, гораздо более качественную) программу из имеющихся в дистрибутиве.
Сложный и совсем правильный способ: стать мэйнтейнром данной программы! То есть изучить правила сборки пакетов для ALT Linux, собрать пакет, и влиться в рады разработчиков.
Почему нельзя собирать и ставить программы с помощью make; make install
Кратко: если вы не понимаете, почему нельзя пользоваться configure;make;make install, то вам не стоит пользоваться этими командами.
Многие неопытные пользователи часто возмущаются, когда им говорят, что в дистрибутивах, основанных на пакетах (rpm, deb и т.п.) не стоит устанавливать программы с помощью make install. Основные причины не использовать эти команды:
- программа, установленная таким образом, не попадает в базу данных установленных программ, в общем виде ее невозможно корректно обновить или удалить, она порождает файлы, принадлежность которых невозможно определить.
- между программами есть зависимости, часто очень сложные. Разрешение зависимостей при make install не работает, и такая установка программы может привести к неработоспособности других программ или всей системы.
- в каждом дистрибутиве есть специфические настройки, особое расположение конфигурационных файлов и т.п. При сборке пакета мэйнтейнер учитывает эти нюансы, make install их игнорирует.
Все вышесказанное относится и к программам, устанавливаемым с помощью инсталляционных скриптов типа *.run.
Почему нельзя ставить пакеты из других дистрибутивов
Кратко: если вы не знаете, почему нельзя ставить чужие rpm, не стоит этого делать!
Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов, версий библиотек и т.п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов.
Если нельзя, но очень хочется...
Иногда очень хочется или очень надо поставить пакет из исходников. Делайте это на свой страх и риск, и не говорите потом, что вас не предупреждали, и не засоряйте рассылки и форумы нытьём типа "я тут сделал, и у меня не работает".
Некоторые рекомендации:
- практически у всех программ скрипт configure понимает параметр --prefix, в который можно и нужно указать "альтернативный" каталог для установки, чтоб ваша программа не конфликтовала с другими программами из системы. Используйте что-то вида --prefix=/opt/usr или --prefix=$HOME/my_progs.
- инсталляторы *.run тоже (обычно) умеют ставить программу в указанный каталог. Не ставьте ничего в /usr!
- при установке чужих rpm-пакетов избегайте команд вида rpm -i и тем более rpm --nodeps --force. Используйте apt-get install.
Примечания
- ↑ Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке репозитария, или во всех репозитариях ALT Linux'а
- ↑ По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не найдется в вашей системе и источниках установки.