Я новичок в Linux и использую CentOS. Я сталкивался с четырьмя способами обновить или установить программное обеспечение.
До сих пор я видел:
yum install [program]
apt-get install [program]
rpm -i [program].rpm
wget [program].tar.gz
->unpack
->./configure
->make
->make install
Последний - настоящая боль, особенно из-за Windows, где установка программы обычно выполняется одним щелчком мыши и хорошим мастером установки.
Итак, мои вопросы:
- Почему в Linux так много разных способов сделать это?
- Какой из них вы рекомендуете использовать и почему?
- Существуют ли другие способы установки программ в Linux?
linux
installation
package-management
yum
rpm
Саиф Бечан
источник
источник
yum
противup2date
. Я никогда не понимал разницу.apt-get
предназначен для Debian, и действительно не должен появляться в CentOS ....Ответы:
Все эти инструменты устанавливают программное обеспечение в вашу систему, но работают на разных уровнях.
./configure && make install
Запуск
./configure && make install
создает и устанавливает библиотеки или исполняемые файлы непосредственно из исходного кода.make install
Шаг в основном только копии окончательных файлов в вашей системе. Многие источники поставляются со специальнымmake uninstall
правилом для их повторного удаления, но это не гарантируется и, конечно, работает только при наличии настроенных источников. Кроме того, это не заботится о необходимых зависимостях.Часто для определенного пакета доступен только исходный код, так что это единственный путь. Кроме того,
./configure
обычно принимает множество опций, позволяющих адаптировать ваш пакет.Отсутствие возможности выяснить, какое программное обеспечение и какой файл установлены, и отсутствие надежного способа их удаления из системы являются основными недостатками этого подхода.
RPM (менеджер пакетов Redhat)
rpm
устанавливает уже сконфигурированное и скомпилированное программное обеспечение в вашу систему, а также поставляется с деинсталляцией, чтобы избавиться от него снова. Пакеты должны быть кем-то созданы. Этот человек уже определился с тем, какие функции включить и как наилучшим образом интегрировать пакет в макет вашей системы. Это также идет со списком зависимостей.Поскольку rpms используются во многих дистрибутивах, вам часто нужно убедиться, что этот rpm был написан для вашего дистрибутива, чтобы пути установки, зависимости и другие служебные вещи хорошо интегрировались.
В системах Debian используется эквивалентный формат пакета,
.deb
а установка и база данных обрабатываютсяdpkg
инструментом.Yum
yum
это дополнительная обертка вокругrpm
. Он хранит свою собственную базу данных rpm-файлов, доступных для вашего распространения, как правило, в онлайн-хранилищах. Для стабильных версий большинства дистрибутивов все пакеты в этой базе данных будут хорошо взаимодействовать друг с другом. В этой базе данных можно искать (например, с помощьюyum search some_name
).Это также автоматически разрешит зависимости для вас. Пакеты (и с некоторой дополнительной помощью их зависимости) также могут быть легко удалены.
В системах Debian Apt (
apt-get
иaptitude
) предоставляет эквивалентные инструменты для репозитория и разрешения зависимостей .Итак, подведем итог: если вы просто хотите какое-то программное обеспечение, попробуйте
yum
сначала. Если его там нет, вы можете попытаться найти существующийrpm
пакет. Если его нет или у вас есть какие-то особые требования, соберите из исходного кода.источник
apt-get
или все же это рекомендуется?apt-get
не записывал автоматические зависимости и оставлял их после удаления, аaptitude
затем ввел надлежащее отслеживание зависимостей. Кроме того, он также предоставил некоторые дополнительные функции, недоступные вapt-get
. Я не уверен, но я думаю, что в какой-то моментapt-get
иaptitude
где обновится использовать тот же, передовой бэкэнд, обеспечивающий большую часть этой функциональности.Yum - это RPM - это то же самое, за исключением того, что yum автоматически получает пакеты из сети и устанавливает их (используя
rpm -i
) за один шаг. По возможности его следует использовать для облегчения обновления. Используйтеrpm
только тогда, когда пакет не найденyum
, и используйтеmake
метод только тогда, когда нет пакета .rpm или вам нужно изменить некоторые параметры времени компиляции.источник