Где и как искать программы: различия между версиями

Материал из ALT Linux Wiki
Строка 121: Строка 121:
=== Программа вообще не работает в Linux ===
=== Программа вообще не работает в Linux ===
Некоторые программы (сюрприз-сюрприз!) вообще не работают в Линукс. Например, бинарные программы, написанные под другую операционную систему (Windows, Solaris, BSD), или программы (даже и исходниками) написанные под очень старые версии Линукс. Если вам очень хочется поработать с такими программами, поставьте ту ОС, для которой они написаны.
Некоторые программы (сюрприз-сюрприз!) вообще не работают в Линукс. Например, бинарные программы, написанные под другую операционную систему (Windows, Solaris, BSD), или программы (даже и исходниками) написанные под очень старые версии Линукс. Если вам очень хочется поработать с такими программами, поставьте ту ОС, для которой они написаны.
[[Category:HowTo]]


== Примечания ==
== Примечания ==
<references />
<references />

Версия от 15:30, 27 декабря 2008

Где и как искать программы, и как их потом устанавливать

Все программы для Linux можно разделить на две большие категории (с подкатегориями):

Далее описаны краткие примерные инструкции что делать во всех этих случаях.

Общая рекомендация: если вам нужна какая-то программа, то

  1. Сначала поищите её на в тех источниках установки, на которые настроена ваша система управления пакетами.
  2. Затем поищите нужную программу в других репозитариях ALT Linux, например, используя поиск на сайте http://sisyphus.ru и далее.
  3. Если нужной программы не оказалось среди пакетов 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.
  • выбирайте rpm со статическими сборками, в их имена присутствует слово static.
  • при установке бинарных сборок таких программ как Firefox или OpenOffice и им подобных, качайте с сайта пакет "для всех дистрибутивов", обычно это tgz-архив, и распаковывайте его в, например, /opt или $HOME/progs.


Отдельное замечание про драйвера nVidia и ATi

Очень часто пользователи пытаются скачать с сайта производителя и поставить драйвера для видеокарт нВидиа или АТи. Не стоит так делать!

Все необходимые драйвера уже есть в дистрибутиве (на СД/ДВД или в сетевых репозитариях). Если у вас очень новая карта, и имеющиеся драйвера её не понимают, то вешайте запрос в Багзиллу на обновление драйверов. Самостоятельная установка драйверов путём запуска *.run гарантированно разломает вам графическую подсистему!

Отдельное замечание про установку VirtualBox

Часто пользователи ставят проприетраную сборку VirtualBox. См. инструкцию.

Программы нет в дистрибутиве, и ее нельзя туда включить

Некоторые программы невозможно включить в дистрибутив. Иногда по техническим причинам. Тогда самое правильное будет ждать, пока устранят технические причины. За подробностями обращайтесь в списки рассылки.

Некоторые программы нельзя включить в дистрибутив по лицензионным ограничениям. Например, браузер Opera или интернет-телефон Skype. Для некоторых программ некоторые пользователи в частном порядке собирают rpm-пакеты. Например, http://fly.osdn.org.ua/~drool/ Можете воспользоваться такими "альтернативными" источниками пакетов. Другой выход -- установка статических сборок вручную (см. выше).

Программа вообще не работает в Linux

Некоторые программы (сюрприз-сюрприз!) вообще не работают в Линукс. Например, бинарные программы, написанные под другую операционную систему (Windows, Solaris, BSD), или программы (даже и исходниками) написанные под очень старые версии Линукс. Если вам очень хочется поработать с такими программами, поставьте ту ОС, для которой они написаны.

Примечания

  1. Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке репозитария, или во всех репозитариях ALT Linux'а
  2. По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не найдется в вашей системе и источниках установки.