Где и как искать программы: различия между версиями
Sb (обсуждение | вклад) |
Asy (обсуждение | вклад) |
||
Строка 114: | Строка 114: | ||
Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов и т. п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов. | Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов и т. п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов. | ||
Отдельно стоит упомянуть проблему с версиями разделяемых библиотек, так как она касается не только дистрибутивов от разных производителей, но и дистрибутивов просто разных версий от одного производителя. Использование разделяемых библиотек позволяет экономить на объёмах памяти, скорости загрузки приложений и т.п., но накладывает ограничение на переносимость бинарных пакетов. Поэтому даже в рамках ALT Linux, как правило, нельзя просто взять пакет из Sisyphus | Отдельно стоит упомянуть проблему с версиями разделяемых библиотек, так как она касается не только дистрибутивов от разных производителей, но и дистрибутивов просто разных версий от одного производителя. Использование разделяемых библиотек позволяет экономить на объёмах памяти, скорости загрузки приложений и т.п., но накладывает ограничение на переносимость бинарных пакетов. Поэтому, даже в рамках ALT Linux, как правило, нельзя просто взять пакет из Sisyphus и установить его в дистрибутив на базе стабильного бранча: требуется как минимум [[Backports|пересборка пакета]] в соответствующем окружении. Исключение составляет небольшой промежуток времени после отделения последнего бранча - какое-то время бинарная совместимость сохраняется. | ||
==== Если нельзя, но очень хочется… ==== | ==== Если нельзя, но очень хочется… ==== |
Версия от 08:46, 23 декабря 2013
Где и как искать программы, и как их потом устанавливать
Все программы для Linux можно разделить на две большие категории (с подкатегориями):
- программы, имеющиеся в дистрибутиве[1]
- программы, которых в дистрибутиве нет
Далее описаны краткие примерные инструкции что делать во всех этих случаях.
Общая рекомендация: если вам нужна какая-то программа, то
- Сначала поищите её в тех источниках установки, на которые настроена ваша система управления пакетами.
- Затем поищите нужную программу в других репозиториях 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 Завершено.
Программа есть в сетевом репозитории вашей версии
Настройте вашу систему управления пакетами на использование сетевого репозитория, и установите программу обычным способом (например, это можно сделать с помощью Synaptic).
Что делать, если «интернет дорогой»
Иногда случается так, что нужная программа есть в сетевом репозитории, но подключить и использовать его невозможно, потому что на целевом компьютере дорогой интернет, или вообще нет сети. Можно попробовать скачать нужный пакет и все его зависимости
на другом компьютере, принести все эти пакеты на целевой компьютер, и далее воспользоваться инструкцией по установке одиночного пакета.
Отследить зависимости уже установленных программ (например gimp) можно следующей командой:
$ apt-cache depends gimp
Вы увидите примерно следующее:
gimp-2.6.3-alt1
Требует: libgimp = 2.6.3-alt1
Требует: icc-profiles
Требует: </lib/ld-linux.so.2>
glibc-core-6:2.9-alt1
Требует: </usr/bin/env>
coreutils-6.12-alt2
...
Программа есть в сетевом репозитории другой версии
Самый правильный способ — «повесить» запрос на перенос нужного пакета в вашу версию дистрибутива. Однако, этот способ не самый быстрый :)
Еще один неплохой способ — попробовать самостоятельно собрать нужный пакет «в своём окружении», то есть под свою версию системы. Проще всего это сделать с помощью 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, install.sh и т.п.
Почему нельзя ставить пакеты из других дистрибутивов
Кратко: если вы не знаете, почему нельзя ставить чужие rpm, не стоит этого делать!
Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов и т. п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов.
Отдельно стоит упомянуть проблему с версиями разделяемых библиотек, так как она касается не только дистрибутивов от разных производителей, но и дистрибутивов просто разных версий от одного производителя. Использование разделяемых библиотек позволяет экономить на объёмах памяти, скорости загрузки приложений и т.п., но накладывает ограничение на переносимость бинарных пакетов. Поэтому, даже в рамках ALT Linux, как правило, нельзя просто взять пакет из Sisyphus и установить его в дистрибутив на базе стабильного бранча: требуется как минимум пересборка пакета в соответствующем окружении. Исключение составляет небольшой промежуток времени после отделения последнего бранча - какое-то время бинарная совместимость сохраняется.
Если нельзя, но очень хочется…
Иногда очень хочется или очень надо поставить пакет из исходников. Делайте это на свой страх и риск, и не говорите потом, что вас не предупреждали, и не засоряйте рассылки и форумы нытьём типа «я тут сделал, и у меня не работает».
Некоторые рекомендации:
- практически у всех программ скрипт 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
Очень часто пользователи пытаются скачать с сайта производителя и поставить драйвера для видеокарт нВидиа или АТи. Не стоит так делать!
Все необходимые драйвера уже есть в дистрибутиве (на CD/DVD или в сетевых репозиториях). Если у вас очень новая карта, и имеющиеся драйвера её не понимают, то вешайте запрос в Багзиллу на обновление драйверов. Самостоятельная установка драйверов путём запуска *.run гарантированно разломает вам графическую подсистему!
Отдельное замечание про установку VirtualBox
Часто пользователи ставят проприетарную сборку VirtualBox. См. инструкцию.
Программы нет в дистрибутиве, и её нельзя туда включить
Некоторые программы невозможно включить в дистрибутив. Иногда по техническим причинам. Тогда самое правильное будет ждать, пока устранят технические причины. За подробностями обращайтесь в списки рассылки.
Некоторые программы нельзя включить в дистрибутив по лицензионным ограничениям. Например, браузер Opera или интернет-телефон Skype. Для некоторых программ некоторые пользователи в частном порядке собирают rpm-пакеты. Например, fly.osdn.org.ua/~drool/ (см. FAQ). Можете воспользоваться такими «альтернативными» источниками пакетов. Другой выход — установка статических сборок вручную (см. выше).
Программа вообще не работает в Linux
Некоторые программы вообще не работают в Linux. Например, бинарные программы, написанные под другую операционную систему (Windows, Solaris, BSD), или программы (даже с исходниками) написанные под очень старые версии Linux. Если вам очень хочется поработать с такими программами, поставьте ту ОС, для которой они написаны.
Примечания
- ↑ Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке репозитория, или во всех репозиториях ALT Linux’а
- ↑ По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не найдётся в вашей системе и источниках установки.