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

Материал из ALT Linux Wiki
(репозиторий)
Нет описания правки
Строка 2: Строка 2:


Все программы для Linux можно разделить на две большие категории (с подкатегориями):
Все программы для Linux можно разделить на две большие категории (с подкатегориями):
* программы, имеющиеся в дистрибутиве<ref>Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке репозитория, или во всех репозиториях ALT Linux'а</ref>
* программы, имеющиеся в дистрибутиве<ref>Под дистрибутивом в данном контексте понимается не отдельно взятый CD или DVD, который оказался у пользователя, а полный набор пакетов в определённой ветке репозитория, или во всех репозиториях ALT Linux’а</ref>
** [[#Программа есть на диске пользователя|имеющиеся на диске (CD/DVD/жёсткий диск) у пользователя]]
** [[#Программа есть на диске пользователя|имеющиеся на диске (CD/DVD/жёсткий диск) у пользователя]]
** [[#Программа есть в сетевом репозитории вашей версии|в сетевом репозитории, версия которого совпадает с той, что установлена у пользователя]]
** [[#Программа есть в сетевом репозитории вашей версии|в сетевом репозитории, версия которого совпадает с той, что установлена у пользователя]]
** [[#Программа есть в сетевом репозитории другой версии|в сетевом репозитории, версия которого отличается от той, что у пользователя]]
** [[#Программа есть в сетевом репозитории другой версии|в сетевом репозитории, версия которого отличается от той, что у пользователя]]
* программы, которых в дистрибутиве нет
* программы, которых в дистрибутиве нет
** [[#Программы нет в дистрибутиве, но ее можно туда включить|но которые можно включить в дистрибутив]]
** [[#Программы нет в дистрибутиве, но её можно туда включить|но которые можно включить в дистрибутив]]
** [[#Программы нет в дистрибутиве, и ее нельзя туда включить|потому что их нельзя включить в дистрибутив]]
** [[#Программы нет в дистрибутиве, и её нельзя туда включить|потому что их нельзя включить в дистрибутив]]
** [[#Программа вообще не работает в Linux|потому что они вообще не работают в Linux]]
** [[#Программа вообще не работает в Linux|потому что они вообще не работают в Linux]]


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


'''Общая рекомендация:'''  
'''Общая рекомендация:'''
если вам нужна какая-то программа, то
если вам нужна какая-то программа, то
# Сначала поищите её в тех источниках установки, на которые настроена ваша система управления пакетами.
# Сначала поищите её в тех источниках установки, на которые настроена ваша система управления пакетами.
Строка 24: Строка 24:
Если у вас на жёстком диске есть целый набор rpm-пакетов, и они ещё не организованы в репозиторий, то самое время [[APT_в_ALT_Linux/CreateRepository|создать]] из них репозиторий, подключить его в качестве источника установки, и см. выше.
Если у вас на жёстком диске есть целый набор rpm-пакетов, и они ещё не организованы в репозиторий, то самое время [[APT_в_ALT_Linux/CreateRepository|создать]] из них репозиторий, подключить его в качестве источника установки, и см. выше.


Если у вас имеется одиночный<ref>По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не найдется в вашей системе и источниках установки.</ref> пакет с нужной программой, то можно попробовать установить его следующим образом:
Если у вас имеется одиночный<ref>По возможности, стоит избегать такой ситуации! Потому что одиночному пакету по зависимостям могут понадобиться другие пакеты, которых не найдётся в вашей системе и источниках установки.</ref> пакет с нужной программой, то можно попробовать установить его следующим образом:


[[Releases/40/su|от рута]] перейдите в каталог, где лежит нужный пакет и выполните команду '''apt-get install ./ИМЯ_ФАЙЛА.rpm'''. Например:
[[Releases/40/su|от рута]] перейдите в каталог, где лежит нужный пакет и выполните команду '''apt-get install ./ИМЯ_ФАЙЛА.rpm'''. Например:
Строка 50: Строка 50:
[[Releases/40/repository|Настройте]] вашу систему управления пакетами на использование сетевого репозитория, и установите программу обычным способом.
[[Releases/40/repository|Настройте]] вашу систему управления пакетами на использование сетевого репозитория, и установите программу обычным способом.


==== Что делать, если "интернет дорогой" ====
==== Что делать, если «интернет дорогой» ====
Иногда случается так, что нужная программа есть в сетевом репозитории, но подключить и использовать его невозможно, потому что на целевом компьютере дорогой интернет, или вообще нет сети. Можно попробовать скачать нужный пакет и все его зависимости <div style="display: inline; color: red;">(как их определить?)</div> на другом компьютере, принести все эти пакеты на целевой компьютер, и далее воспользоваться инструкцией по установке одиночного пакета.
Иногда случается так, что нужная программа есть в сетевом репозитории, но подключить и использовать его невозможно, потому что на целевом компьютере дорогой интернет, или вообще нет сети. Можно попробовать скачать нужный пакет и все его зависимости <div style="display: inline; color: red;">(как их определить?)</div> на другом компьютере, принести все эти пакеты на целевой компьютер, и далее воспользоваться инструкцией по установке одиночного пакета.


=== Программа есть в сетевом репозитории другой версии ===
=== Программа есть в сетевом репозитории другой версии ===
Самый правильный способ -- повесить в [[BugTracking/BugzillaMiniHowto|Багзиллу]] запрос на перенос (портирование) нужного пакета в вашу версию дистрибутива. Однако, этот способ не самый быстрый :)
Самый правильный способ — повесить в [[BugTracking/BugzillaMiniHowto|Багзиллу]] запрос на перенос (портирование) нужного пакета в вашу версию дистрибутива. Однако, этот способ не самый быстрый :)


Еще один неплохой способ -- попробовать собрать нужный пакет своём окружении", то есть под свою версию системы. Проще всего это сделать с помощью [[Hasher|Hasher]]. Вам понадобится скачать пакет с исходными текстами нужной программы (src.rpm пакет), и воспользоваться инструкцией по работе с Hasher.
Еще один неплохой способ — попробовать собрать нужный пакет «в своём окружении», то есть под свою версию системы. Проще всего это сделать с помощью [[Hasher|Hasher]]. Вам понадобится скачать пакет с исходными текстами нужной программы (src.rpm пакет), и воспользоваться инструкцией по работе с Hasher.


''Примечание: сборка в Хашере требует настроенного источника пакетов. В процессе сборки из источника будут получены пакеты на десятки (или даже сотни) мегабайт. Следите за траффиком :)''
''Примечание: сборка в Хэшере требует настроенного источника пакетов. В процессе сборки из источника будут получены пакеты на десятки (или даже сотни) мегабайт. Следите за трафиком :)''


Еще один способ: пересобрать src.rpm с помощью команды '''rpm --rebuild''' (за подробностями в man rpm). При такой пересборке не понадобится выкачивать из источника пакетов те пакеты, которые уже установлены в вашей системе, что может сэкономить время и деньги. Но удовлетворение сборочных зависимостей придётся делать вручную, что требует определённой квалификации. Кроме того, произойдет "засорение" системы devel-пакетами. '''Метод не рекомендуется неопытным пользователям!'''
Еще один способ: пересобрать src.rpm с помощью команды '''rpm --rebuild''' (за подробностями в man rpm). При такой пересборке не понадобится выкачивать из источника пакетов те пакеты, которые уже установлены в вашей системе, что может сэкономить время и деньги. Но удовлетворение сборочных зависимостей придётся делать вручную, что требует определённой квалификации. Кроме того, произойдёт «засорение» системы devel-пакетами. '''Метод не рекомендуется неопытным пользователям!'''


Если сборка программы завершается ошибками, и вашей квалификации не хватает для их устранения, см. первый способ.
Если сборка программы завершается ошибками, и вашей квалификации не хватает для их устранения, см. первый способ.


=== Программы нет в дистрибутиве, но ее можно туда включить ===
=== Программы нет в дистрибутиве, но её можно туда включить ===
Существует огромное множество программ. И ни один дистрибутив не может охватить все это множество.
Существует огромное множество программ. И ни один дистрибутив не может охватить все это множество.


Строка 74: Строка 74:
Что делать в таком случае?
Что делать в таком случае?


Простой и правильный способ: разместить в [[BugTracking/BugzillaMiniHowto|Багзилле]] и [http://lists.altlinux.org списке рассылке] просьбу собрать и поместить нужную программу в дистрибутив. Если это действительно хорошая и нужная программа, то, возможно, найдется тот человек, который захочет и сможет собрать и поместить ее в дистрибутив. Или вам посоветуют аналогичную (возможно, гораздо более качественную) программу из имеющихся в дистрибутиве.
Простой и правильный способ: разместить в [[BugTracking/BugzillaMiniHowto|Багзилле]] и [http://lists.altlinux.org списке рассылке] просьбу собрать и поместить нужную программу в дистрибутив. Если это действительно хорошая и нужная программа, то, возможно, найдётся тот человек, который захочет и сможет собрать и поместить её в дистрибутив. Или вам посоветуют аналогичную (возможно, гораздо более качественную) программу из имеющихся в дистрибутиве.


Сложный и совсем правильный способ: стать [[Разговорник_для_новичков|мэйнтейнром]] данной программы! То есть изучить [[Руководство_начинающего_мейнтейнера_ALT_Linux_Team|правила]] сборки пакетов для ALT Linux, собрать пакет, и влиться в ряды разработчиков.
Сложный и совсем правильный способ: стать [[Разговорник_для_новичков|мейнтейнром]] данной программы! То есть изучить [[Руководство_начинающего_мейнтейнера_ALT_Linux_Team|правила]] сборки пакетов для ALT Linux, собрать пакет, и влиться в ряды разработчиков.


==== Почему нельзя собирать и ставить программы с помощью make; make install ====
==== Почему нельзя собирать и ставить программы с помощью make; make install ====
Кратко: если вы не понимаете, почему нельзя пользоваться '''configure;make;make install''', то вам не стоит пользоваться этими командами.
Кратко: если вы не понимаете, почему нельзя пользоваться {{cmd|configure; make; make install}}, то вам не стоит пользоваться этими командами.


Многие неопытные пользователи часто возмущаются, когда им говорят, что в дистрибутивах, основанных на пакетах (rpm, deb и т.п.) не стоит устанавливать программы с помощью make install. Основные причины не использовать эти команды:
Многие неопытные пользователи часто возмущаются, когда им говорят, что в дистрибутивах, основанных на пакетах (rpm, deb и т. п.) не стоит устанавливать программы с помощью {{cmd|make install}}. Основные причины не использовать эти команды:
* программа, установленная таким образом, не попадает в базу данных установленных программ, в общем виде ее невозможно корректно обновить или удалить, она порождает файлы, принадлежность которых невозможно определить.
* программа, установленная таким образом, не попадает в базу данных установленных программ, в общем виде её невозможно корректно обновить или удалить, она порождает файлы, принадлежность которых невозможно определить.
* между программами есть зависимости, часто очень сложные. Разрешение зависимостей при make install не работает, и такая установка программы может привести к неработоспособности других программ или всей системы.
* между программами есть зависимости, часто очень сложные. Разрешение зависимостей при {{cmd|make install}} не работает, и такая установка программы может привести к неработоспособности других программ или всей системы.
* в каждом дистрибутиве есть специфические настройки, особое расположение конфигурационных файлов и т.п. При сборке пакета мэйнтейнер учитывает эти нюансы, make install их игнорирует.
* в каждом дистрибутиве есть специфические настройки, особое расположение конфигурационных файлов и т. п. При сборке пакета мейнтейнер учитывает эти нюансы, make install их игнорирует.


Все вышесказанное относится и к программам, устанавливаемым с помощью инсталляционных скриптов типа '''*.run'''.
Все вышесказанное относится и к программам, устанавливаемым с помощью инсталляционных скриптов типа '''*.run'''.
Строка 91: Строка 91:
Кратко: если вы не знаете, почему нельзя ставить чужие rpm, не стоит этого делать!
Кратко: если вы не знаете, почему нельзя ставить чужие rpm, не стоит этого делать!


Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов, версий библиотек и т.п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов.
Часто пользователи пытаются поставить rpm-пакеты (а иногда и deb-пакеты) из других дистрибутивов, обычно Mandriva или RedHat. Но в каждом дистрибутиве свои особенности настроек, именования пакетов, версий библиотек и т. п. Поэтому есть отличная от нуля вероятность разломать свою систему установкой чужих пакетов.


==== Если нельзя, но очень хочется... ====
==== Если нельзя, но очень хочется… ====
Иногда очень хочется или очень надо поставить пакет из исходников. '''Делайте это на свой страх и риск, и не говорите потом, что вас не предупреждали, и не засоряйте рассылки и форумы нытьём типа тут сделал, и у меня не работает".'''
Иногда очень хочется или очень надо поставить пакет из исходников. '''Делайте это на свой страх и риск, и не говорите потом, что вас не предупреждали, и не засоряйте рассылки и форумы нытьём типа «я тут сделал, и у меня не работает».'''


Некоторые рекомендации:
Некоторые рекомендации:
* практически у всех программ скрипт '''configure''' понимает параметр '''--prefix''', в который можно и нужно указать "альтернативный" каталог для установки, чтоб ваша программа не конфликтовала с другими программами из системы. Используйте что-то вида '''--prefix=/opt/usr''' или '''--prefix=$HOME/my_progs'''.
* практически у всех программ скрипт '''configure''' понимает параметр '''--prefix''', в который можно и нужно указать «альтернативный» каталог для установки, чтоб ваша программа не конфликтовала с другими программами из системы. Используйте что-то вида '''--prefix=/opt/usr''' или '''--prefix=$HOME/my_progs'''.
* инсталляторы *.run тоже (обычно) умеют ставить программу в указанный каталог. Не ставьте ничего в /usr!
* инсталляторы *.run тоже (обычно) умеют ставить программу в указанный каталог. Не ставьте ничего в /usr!
* при установке чужих rpm-пакетов избегайте команд вида '''rpm -i''' и тем более '''rpm --nodeps --force'''. Используйте '''apt-get install'''.
* при установке чужих rpm-пакетов избегайте команд вида '''rpm -i''' и тем более '''rpm --nodeps --force'''. Используйте '''apt-get install'''.
* выбирайте rpm со статическими сборками, в их имена присутствует слово static.
* выбирайте rpm со статическими сборками, в их имена присутствует слово static.
* при установке бинарных сборок таких программ как Firefox или OpenOffice и им подобных, качайте с сайта пакет "для всех дистрибутивов", обычно это '''tgz'''-архив, и распаковывайте его в, например, '''/opt''' или '''$HOME/progs'''.
* при установке бинарных сборок таких программ как Firefox или OpenOffice и им подобных, качайте с сайта пакет «для всех дистрибутивов», обычно это '''tgz'''-архив, и распаковывайте его в, например, '''/opt''' или '''$HOME/progs'''.


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


Все необходимые драйвера уже есть в дистрибутиве (на СД/ДВД или в сетевых репозиториях). Если у вас очень новая карта, и имеющиеся драйвера её не понимают, то вешайте запрос в Багзиллу на обновление драйверов. '''Самостоятельная установка драйверов путём запуска *.run гарантированно разломает вам графическую подсистему!'''
Все необходимые драйвера уже есть в дистрибутиве (на СД/ДВД или в сетевых репозиториях). Если у вас очень новая карта, и имеющиеся драйвера её не понимают, то вешайте запрос в Багзиллу на обновление драйверов. '''Самостоятельная установка драйверов путём запуска *.run гарантированно разломает вам графическую подсистему!'''
Строка 114: Строка 114:
Некоторые программы невозможно включить в дистрибутив. Иногда по техническим причинам. Тогда самое правильное будет ждать, пока устранят технические причины. За подробностями обращайтесь в [http://lists.altlinux.ru списки рассылки].
Некоторые программы невозможно включить в дистрибутив. Иногда по техническим причинам. Тогда самое правильное будет ждать, пока устранят технические причины. За подробностями обращайтесь в [http://lists.altlinux.ru списки рассылки].


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


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


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


[[Category:HOWTO]]
[[Категория:HOWTO]]

Версия от 09:26, 7 января 2009

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

Все программы для 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

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

Примечания

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