Где и как искать программы: различия между версиями
Нет описания правки |
|||
(не показаны 73 промежуточные версии 27 участников) | |||
Строка 2: | Строка 2: | ||
Все программы для Linux можно разделить на две большие категории (с подкатегориями): | Все программы для Linux можно разделить на две большие категории (с подкатегориями): | ||
* программы, имеющиеся в дистрибутиве<ref>Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке | * программы, имеющиеся в дистрибутиве<ref>Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке репозитория, или во всех репозиториях ALT Linux’а</ref> | ||
** [[#Программа есть на диске пользователя|имеющиеся на диске (CD/DVD/жёсткий диск) у пользователя]] | ** [[#Программа есть на диске пользователя|имеющиеся на диске (CD/DVD/жёсткий диск) у пользователя]] | ||
** [[#Программа есть в сетевом | ** [[#Программа есть в сетевом репозитории вашей версии|в сетевом репозитории, версия которого совпадает с той, что установлена у пользователя]] | ||
** [[#Программа есть в сетевом | ** [[#Программа есть в сетевом репозитории другой версии|в сетевом репозитории, версия которого отличается от той, что у пользователя]] | ||
* программы, которых в дистрибутиве нет | * программы, которых в дистрибутиве нет | ||
** [[#Программы нет в дистрибутиве, но | ** [[#Программы нет в дистрибутиве, но её можно туда включить|но которые можно включить в дистрибутив]] | ||
** [[#Программы нет в дистрибутиве, и | ** [[#Программы нет в дистрибутиве, и её нельзя туда включить|потому что их нельзя включить в дистрибутив]] | ||
** потому что они вообще не работают в Linux | ** [[#Программа вообще не работает в Linux|потому что они вообще не работают в Linux]] | ||
Далее описаны краткие примерные инструкции что делать во всех этих случаях. | Далее описаны краткие примерные инструкции что делать во всех этих случаях. | ||
'''Общая рекомендация:''' | '''Общая рекомендация:''' | ||
если вам нужна какая-то программа, то | если вам нужна какая-то программа, то | ||
# Сначала поищите её | # Сначала поищите её в тех источниках установки, на которые настроена ваша система управления пакетами. | ||
# Затем поищите нужную программу в других | # Затем поищите нужную программу в других репозиториях ALT Linux, например, используя поиск на сайте [http://packages.altlinux.org/ru http://packages.altlinux.org] и [[#Программа есть в сетевом репозитории другой версии|далее]]. | ||
# Если нужной программы не оказалось среди пакетов ALT, то найдите в интернете сайт разработчиков программы, и далее следуйте инструкции. | # Если нужной программы не оказалось среди пакетов ALT, то найдите в интернете сайт разработчиков программы, и далее следуйте [[#Программы нет в дистрибутиве, но её можно туда включить|инструкции]]. | ||
# Если непонятно, какая именно программа нужна, можно посмотреть информацию [[SoftwareCenter/Applications|тут]], [[Sysadmin|тут]] и [[Замена|тут]]. Эти списки ПО не претендуют на полноту, но могут оказаться полезными. | |||
=== Программа есть на диске пользователя === | === Программа есть на диске пользователя === | ||
Если у вас есть CD/DVD диск с дистрибутивом ALT (например тот, с которого вы поставили систему), то поиск и установка нужной программы осуществляется очень просто. Достаточно [[Releases/40/repositorycdrom|подключить]] этот диск в качестве источника установки и [[Releases/40/ | Если у вас есть CD/DVD диск с дистрибутивом ALT (например тот, с которого вы поставили систему), то поиск и установка нужной программы осуществляется очень просто. Достаточно [[Releases/40/repositorycdrom|подключить]] этот диск в качестве источника установки и [[Releases/40/addremove|использовать]] программы работы с пакетами, такие как apt-get или synaptic. | ||
Если у вас на жёстком диске есть целый набор rpm-пакетов, и они ещё не организованы в | Если у вас на жёстком диске есть целый набор rpm-пакетов, и они ещё не организованы в репозиторий, то самое время [[APT_в_ALT_Linux/CreateRepository|создать]] из них репозиторий, подключить его в качестве источника установки, и см. выше. | ||
Если у вас имеется одиночный<ref>По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не найдётся в вашей системе и источниках установки.</ref> пакет с нужной программой, то можно попробовать установить его следующим образом: | |||
Если у вас имеется одиночный<ref>По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не | |||
[[Releases/40/su|от рута]] перейдите в каталог, где лежит нужный пакет и выполните команду '''apt-get install ./ИМЯ_ФАЙЛА.rpm'''. Например: | [[Releases/40/su|от рута]] перейдите в каталог, где лежит нужный пакет и выполните команду '''apt-get install ./ИМЯ_ФАЙЛА.rpm'''. Например: | ||
Строка 47: | Строка 47: | ||
Завершено. | Завершено. | ||
=== Программа есть в сетевом | === Программа есть в сетевом репозитории вашей версии === | ||
Настройте вашу систему управления пакетами на использование сетевого [[Репозитории_ALT_Linux|репозитория]], и установите программу обычным способом (например, это можно сделать с помощью [[Synaptic]]). | |||
''Примечание: не следует забывать про дополнительные репозитории [[Autoimports]]''. | |||
==== Что делать, если «интернет дорогой» ==== | |||
Иногда случается так, что нужная программа есть в сетевом репозитории, но подключить и использовать его невозможно, потому что на целевом компьютере дорогой интернет, или вообще нет сети. Можно попробовать скачать нужный пакет и все его зависимости <div style="display: inline; color: red;">(как их определить - ниже)</div> на другом компьютере, принести все эти пакеты на целевой компьютер, и далее воспользоваться инструкцией по установке одиночного пакета. | |||
Отследить зависимости уже установленных программ (например gimp) можно следующей командой: | |||
<code>$ apt-cache depends gimp</code> | |||
Вы увидите примерно следующее: | |||
<pre>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 | |||
...</pre> | |||
=== Программа есть в сетевом репозитории другой версии === | |||
Самый правильный способ — [[Перенос_программ_(backports)|«повесить» запрос на перенос]] нужного пакета в вашу версию дистрибутива. Однако, этот способ не самый быстрый :) | |||
Еще один способ: пересобрать src.rpm с помощью команды '''rpm --rebuild''' (за подробностями в man rpm). При такой пересборке не понадобится выкачивать из источника пакетов те пакеты, которые уже установлены в вашей системе, что может сэкономить время и деньги. Но удовлетворение сборочных зависимостей придётся делать вручную, что требует определённой квалификации. Кроме того, | Еще один неплохой способ — попробовать самостоятельно собрать нужный пакет «в своём окружении», то есть под свою версию системы. Проще всего это сделать с помощью [[Hasher|Hasher]]. Вам понадобится скачать пакет с исходными текстами нужной программы (src.rpm пакет), и воспользоваться инструкцией по работе с Hasher. | ||
''Примечание: сборка в Хэшере требует настроенного источника пакетов. В процессе сборки из источника будут получены пакеты на десятки (или даже сотни) мегабайт. Следите за трафиком :)'' | |||
Еще один способ: пересобрать src.rpm с помощью команды '''rpm --rebuild''' (за подробностями — в man rpm). При такой пересборке не понадобится выкачивать из источника пакетов те пакеты, которые уже установлены в вашей системе, что может сэкономить время и деньги. Но удовлетворение сборочных зависимостей придётся делать вручную, что требует определённой квалификации. Кроме того, произойдёт «засорение» системы devel-пакетами. '''Метод не рекомендуется неопытным пользователям!''' | |||
Если сборка программы завершается ошибками, и вашей квалификации не хватает для их устранения, см. первый способ. | Если сборка программы завершается ошибками, и вашей квалификации не хватает для их устранения, см. первый способ. | ||
=== Программы нет в дистрибутиве, но её можно туда включить === | |||
=== Программы нет в дистрибутиве, но | |||
Существует огромное множество программ. И ни один дистрибутив не может охватить все это множество. | Существует огромное множество программ. И ни один дистрибутив не может охватить все это множество. | ||
Строка 76: | Строка 98: | ||
Что делать в таком случае? | Что делать в таком случае? | ||
Простой и правильный способ: разместить в | Простой и правильный способ: разместить в [http://lists.altlinux.org списке рассылки] просьбу собрать и поместить нужную программу в дистрибутив. Если это действительно хорошая и нужная программа, то, возможно, найдётся тот человек, который захочет и сможет собрать и поместить её в дистрибутив. Или вам посоветуют аналогичную (возможно, гораздо более качественную) программу из имеющихся в дистрибутиве. | ||
Сложный и совсем правильный способ: стать [[Разговорник_для_новичков| | Сложный и совсем правильный способ: стать [[Разговорник_для_новичков#М|мейнтейнером]] данной программы! То есть изучить [[Руководство_начинающего_мейнтейнера_ALT_Linux_Team|правила]] сборки пакетов для ALT Linux, собрать пакет, и влиться в ряды разработчиков. | ||
<div id="no_make_install"></div> | |||
==== Почему нельзя собирать и ставить программы с помощью make; make install ==== | ==== Почему нельзя собирать и ставить программы с помощью make; make install ==== | ||
Кратко: если вы не понимаете, почему нельзя пользоваться | Кратко: если вы не понимаете, почему нельзя пользоваться {{cmd|configure; make; make install}}, то вам не стоит пользоваться этими командами. | ||
Многие неопытные пользователи часто возмущаются, когда им говорят, что в дистрибутивах, основанных на пакетах (rpm, deb и т.п.) не стоит устанавливать программы с помощью make install. Основные причины не использовать эти команды: | Многие неопытные пользователи часто возмущаются, когда им говорят, что в дистрибутивах, основанных на пакетах (rpm, deb и т. п.) не стоит устанавливать программы с помощью {{cmd|make install}}. Основные причины не использовать эти команды: | ||
* программа, установленная таким образом, не попадает в базу данных установленных программ, в общем виде | * программа, установленная таким образом, не попадает в базу данных установленных программ, в общем виде её невозможно корректно обновить или удалить, она порождает файлы, принадлежность которых невозможно определить. | ||
* между программами есть зависимости, часто очень сложные. Разрешение зависимостей при make install не работает, и такая установка программы может привести к неработоспособности других программ или всей системы. | * между программами есть зависимости, часто очень сложные. Разрешение зависимостей при {{cmd|make install}} не работает, и такая установка программы может привести к неработоспособности других программ или всей системы. | ||
* в каждом дистрибутиве есть специфические настройки, особое расположение конфигурационных файлов и т.п. При сборке пакета | * в каждом дистрибутиве есть специфические настройки, особое расположение конфигурационных файлов и т. п. При сборке пакета мейнтейнер учитывает эти нюансы, make install их игнорирует. | ||
Все вышесказанное относится и к программам, устанавливаемым с помощью инсталляционных скриптов типа '''*.run'''. | Все вышесказанное относится и к программам, устанавливаемым с помощью инсталляционных скриптов типа <div style="display: inline; color: red;">'''*.run'''</div>, <div style="display: inline; color: red;">'''install.sh'''</div> и т.п. | ||
==== Почему нельзя ставить пакеты из других дистрибутивов ==== | ==== Почему нельзя ставить пакеты из других дистрибутивов ==== | ||
Кратко: если вы не знаете, почему нельзя ставить чужие rpm, не стоит этого делать! | Кратко: если вы не знаете, почему нельзя ставить чужие rpm, не стоит этого делать! | ||
Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов | Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов и т. п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов<ref>[[Alfabank_eToken#pkiclient|Пример разлома посредством установки pkiclient-5.00.28-0.i386.rpm]]</ref>. | ||
==== Если нельзя, но очень хочется... ==== | Отдельно стоит упомянуть проблему с версиями разделяемых библиотек, так как она касается не только дистрибутивов от разных производителей, но и дистрибутивов просто разных версий от одного производителя. Использование разделяемых библиотек позволяет экономить на объёмах памяти, скорости загрузки приложений и т.п., но накладывает ограничение на переносимость бинарных пакетов. Поэтому, даже в рамках ALT Linux, как правило, нельзя просто взять пакет из Sisyphus и установить его в дистрибутив на базе стабильного бранча: требуется [[Backports|пересборка пакета]] в соответствующем окружении. Исключение составляет небольшой промежуток времени после отделения последнего бранча - какое-то время бинарная совместимость сохраняется. | ||
Иногда очень хочется или очень надо поставить пакет из исходников. '''Делайте это на свой страх и риск, и не говорите потом, что вас не предупреждали, и не засоряйте рассылки и форумы нытьём типа | |||
==== Если нельзя, но очень хочется и epm ==== | |||
Есть утилита [[epm|epm]]. Она позволяет перепаковать как чужие rpm, так и deb. Иногда это работает, но гарантии нет. При этом перепаковка для некоторых пакетов даже тестируется и пишутся вспомогательные скрипты, но гарантии, что это будет работать со следующей версией пакета тоже нет. | |||
==== Если нельзя, но очень хочется и make ==== | |||
Иногда очень хочется или очень надо поставить пакет из исходников. '''Делайте это на свой страх и риск, и не говорите потом, что вас не предупреждали, и не засоряйте рассылки и форумы нытьём типа «я тут сделал, и у меня не работает».''' | |||
Некоторые рекомендации: | Некоторые рекомендации: | ||
* практически у всех программ скрипт '''configure''' понимает параметр '''--prefix''', в который можно и нужно указать | * практически у всех программ скрипт '''configure''' понимает параметр '''--prefix''', в который можно и нужно указать «альтернативный» каталог для установки, чтоб ваша программа не конфликтовала с другими программами из системы. Используйте что-то вида '''--prefix=/opt/usr''' или '''--prefix=$HOME/my_progs'''. | ||
* инсталляторы *.run тоже (обычно) умеют ставить программу в указанный каталог. Не ставьте ничего в /usr! | * инсталляторы *.run тоже (обычно) умеют ставить программу в указанный каталог. Не ставьте ничего в '''/usr''' (при этом, '''/usr/local''' использовать можно) ! | ||
* при установке чужих rpm-пакетов избегайте команд вида '''rpm -i''' и тем более '''rpm --nodeps --force'''. Используйте '''apt-get install'''. | * при установке чужих rpm-пакетов избегайте команд вида '''rpm -i''' и тем более '''rpm --nodeps --force'''. Используйте '''apt-get install'''. | ||
* выбирайте rpm со статическими сборками, в их именах часто (но не обязательно) присутствует слово static. | |||
* при установке бинарных сборок таких программ как Firefox или OpenOffice и им подобных, качайте с сайта пакет «для всех дистрибутивов», обычно это '''tgz'''-архив, и распаковывайте его в, например, '''/opt''' или '''$HOME/progs'''. | |||
= | <div id="no_install_unpackaged_video"></div> | ||
Все необходимые драйвера уже есть в дистрибутиве (на | ==== Отдельное замечание про драйвера nVidia и AMD(ATi) ==== | ||
Очень часто пользователи пытаются скачать с сайта производителя и поставить драйвера для видеокарт нВидиа или АТи/АМД. '''Не стоит так делать! Самостоятельная установка драйверов путём запуска *.run разломает вам графическую подсистему с очень высокой степенью вероятности!''' | |||
Все необходимые драйвера уже есть в дистрибутиве (на CD/DVD или в сетевых репозиториях; [[Установка_проприетарных_драйверов_NVIDIA_и_ATI|как ставить]]). Если у вас очень новая карта, и имеющиеся драйвера её не понимают, то [[BugTracking/BugzillaMiniHowto#Заведение нового бага|вешайте запрос]] в [[ALT_Linux_Bugzilla|Багзиллу]] на обновление драйверов. | |||
==== Отдельное замечание про установку VirtualBox ==== | ==== Отдельное замечание про установку VirtualBox ==== | ||
Часто пользователи ставят | Часто пользователи ставят проприетарную сборку VirtualBox. См. [[VirtualBox_(устарело)#Установка_проприетарной_сборки_VirtualBox |инструкцию]]. | ||
==== Как устанавливать AppImage-файлы ==== | |||
Устанавливать программы в формате AppImage не нужно. Они работают без установки см. [[Appimage|инструкцию]]. | |||
=== Программы нет в дистрибутиве, и её нельзя туда включить === | |||
Некоторые программы невозможно включить в дистрибутив. Иногда по техническим причинам. Тогда самое правильное будет ждать, пока устранят технические причины. За подробностями обращайтесь в [http://lists.altlinux.ru списки рассылки]. | |||
Некоторые программы нельзя включить в дистрибутив по лицензионным ограничениям. Например, <s>браузер Opera</s> или интернет-телефон Skype. Для некоторых программ некоторые пользователи в частном порядке собирают rpm-пакеты. Например, [http://fly.osdn.org.ua/~drool/ fly.osdn.org.ua/~drool/] (см. [[FAQ#Как поставить Skype|FAQ]]). Можете воспользоваться такими «альтернативными» источниками пакетов. Другой выход — установка статических сборок вручную, либо использование epm (см. [[#Если нельзя, но очень хочется и epm|выше]]). | |||
Некоторые программы | |||
Некоторые программы | === Программа вообще не работает в Linux === | ||
Некоторые программы вообще не работают в Linux. Например, бинарные программы, написанные под другую операционную систему (Windows, Solaris, BSD), или программы (даже с исходниками) написанные под очень старые версии Linux. Если вам очень хочется поработать с такими программами, поставьте ту ОС, для которой они написаны. | |||
== Примечания == | == Примечания == | ||
<references /> | <references /> | ||
[[Категория:компоненты]] | |||
[[Категория:Программное обеспечение]] | |||
{{Category navigation|title=Программное обеспечение|category=Программное_обеспечение|sortkey={{SUBPAGENAME}}}} | |||
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}} | |||
[[Категория:Управление ПО]] |
Текущая версия от 17:44, 5 апреля 2024
Где и как искать программы, и как их потом устанавливать
Все программы для Linux можно разделить на две большие категории (с подкатегориями):
- программы, имеющиеся в дистрибутиве[1]
- программы, которых в дистрибутиве нет
Далее описаны краткие примерные инструкции что делать во всех этих случаях.
Общая рекомендация: если вам нужна какая-то программа, то
- Сначала поищите её в тех источниках установки, на которые настроена ваша система управления пакетами.
- Затем поищите нужную программу в других репозиториях ALT Linux, например, используя поиск на сайте http://packages.altlinux.org и далее.
- Если нужной программы не оказалось среди пакетов 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).
Примечание: не следует забывать про дополнительные репозитории Autoimports.
Что делать, если «интернет дорогой»
Иногда случается так, что нужная программа есть в сетевом репозитории, но подключить и использовать его невозможно, потому что на целевом компьютере дорогой интернет, или вообще нет сети. Можно попробовать скачать нужный пакет и все его зависимости
на другом компьютере, принести все эти пакеты на целевой компьютер, и далее воспользоваться инструкцией по установке одиночного пакета.
Отследить зависимости уже установленных программ (например 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 их игнорирует.
Все вышесказанное относится и к программам, устанавливаемым с помощью инсталляционных скриптов типа
,
и т.п.
Почему нельзя ставить пакеты из других дистрибутивов
Кратко: если вы не знаете, почему нельзя ставить чужие rpm, не стоит этого делать!
Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов и т. п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов[3].
Отдельно стоит упомянуть проблему с версиями разделяемых библиотек, так как она касается не только дистрибутивов от разных производителей, но и дистрибутивов просто разных версий от одного производителя. Использование разделяемых библиотек позволяет экономить на объёмах памяти, скорости загрузки приложений и т.п., но накладывает ограничение на переносимость бинарных пакетов. Поэтому, даже в рамках ALT Linux, как правило, нельзя просто взять пакет из Sisyphus и установить его в дистрибутив на базе стабильного бранча: требуется пересборка пакета в соответствующем окружении. Исключение составляет небольшой промежуток времени после отделения последнего бранча - какое-то время бинарная совместимость сохраняется.
Если нельзя, но очень хочется и epm
Есть утилита epm. Она позволяет перепаковать как чужие rpm, так и deb. Иногда это работает, но гарантии нет. При этом перепаковка для некоторых пакетов даже тестируется и пишутся вспомогательные скрипты, но гарантии, что это будет работать со следующей версией пакета тоже нет.
Если нельзя, но очень хочется и make
Иногда очень хочется или очень надо поставить пакет из исходников. Делайте это на свой страх и риск, и не говорите потом, что вас не предупреждали, и не засоряйте рассылки и форумы нытьём типа «я тут сделал, и у меня не работает».
Некоторые рекомендации:
- практически у всех программ скрипт configure понимает параметр --prefix, в который можно и нужно указать «альтернативный» каталог для установки, чтоб ваша программа не конфликтовала с другими программами из системы. Используйте что-то вида --prefix=/opt/usr или --prefix=$HOME/my_progs.
- инсталляторы *.run тоже (обычно) умеют ставить программу в указанный каталог. Не ставьте ничего в /usr (при этом, /usr/local использовать можно) !
- при установке чужих rpm-пакетов избегайте команд вида rpm -i и тем более rpm --nodeps --force. Используйте apt-get install.
- выбирайте rpm со статическими сборками, в их именах часто (но не обязательно) присутствует слово static.
- при установке бинарных сборок таких программ как Firefox или OpenOffice и им подобных, качайте с сайта пакет «для всех дистрибутивов», обычно это tgz-архив, и распаковывайте его в, например, /opt или $HOME/progs.
Отдельное замечание про драйвера nVidia и AMD(ATi)
Очень часто пользователи пытаются скачать с сайта производителя и поставить драйвера для видеокарт нВидиа или АТи/АМД. Не стоит так делать! Самостоятельная установка драйверов путём запуска *.run разломает вам графическую подсистему с очень высокой степенью вероятности!
Все необходимые драйвера уже есть в дистрибутиве (на CD/DVD или в сетевых репозиториях; как ставить). Если у вас очень новая карта, и имеющиеся драйвера её не понимают, то вешайте запрос в Багзиллу на обновление драйверов.
Отдельное замечание про установку VirtualBox
Часто пользователи ставят проприетарную сборку VirtualBox. См. инструкцию.
Как устанавливать AppImage-файлы
Устанавливать программы в формате AppImage не нужно. Они работают без установки см. инструкцию.
Программы нет в дистрибутиве, и её нельзя туда включить
Некоторые программы невозможно включить в дистрибутив. Иногда по техническим причинам. Тогда самое правильное будет ждать, пока устранят технические причины. За подробностями обращайтесь в списки рассылки.
Некоторые программы нельзя включить в дистрибутив по лицензионным ограничениям. Например, браузер Opera или интернет-телефон Skype. Для некоторых программ некоторые пользователи в частном порядке собирают rpm-пакеты. Например, fly.osdn.org.ua/~drool/ (см. FAQ). Можете воспользоваться такими «альтернативными» источниками пакетов. Другой выход — установка статических сборок вручную, либо использование epm (см. выше).
Программа вообще не работает в Linux
Некоторые программы вообще не работают в Linux. Например, бинарные программы, написанные под другую операционную систему (Windows, Solaris, BSD), или программы (даже с исходниками) написанные под очень старые версии Linux. Если вам очень хочется поработать с такими программами, поставьте ту ОС, для которой они написаны.
Примечания
- ↑ Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке репозитория, или во всех репозиториях ALT Linux’а
- ↑ По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не найдётся в вашей системе и источниках установки.
- ↑ Пример разлома посредством установки pkiclient-5.00.28-0.i386.rpm