в чем разница между yum, apt-get, rpm, ./configure && make install?

<p>я новичок в linux и использую centos. я сталкивался с четырьмя способами обновить или установить программное обеспечение.</p><p>до сих пор я видел:</p><ul> <li><code>yum install [program]</code></li> <li><code>apt-get install [program]</code></li> <li><code>rpm -i [program].rpm</code></li> <li><code>wget [program].tar.gz</code> -> <code>unpack</code> -> <code>./configure</code> -> <code>make</code> -> <code>make install</code></li> </ul><p>последний из них - настоящая боль, особенно из-за windows, где установка программы обычно выполняется одним щелчком мыши и хорошим установщиком.</p><p>итак, мои вопросы:</p><ul> <li>почему в linux так много разных способов сделать это?</li> <li>какой из них вы рекомендуете использовать и почему?</li> <li>существуют ли другие способы установки программ в linux?</li> </ul>

<p>все эти инструменты устанавливают программное обеспечение в вашу систему, но работают на разных уровнях.</p><ul> <li> <p><strong> ./configure && make install </strong></p> <p>запуск <code>./configure && make install</code> создает и устанавливает библиотеки или исполняемые файлы непосредственно из исходного кода.</p> <p>шаг <code>make install</code> в основном просто копирует окончательные файлы в вашу систему. многие источники поставляются со специальным правилом <code>make uninstall</code> для их повторного удаления, но это не гарантируется и, конечно, работает только при наличии настроенных источников. кроме того, это не заботится о необходимых зависимостях.</p> <p>часто для определенного пакета доступен только исходный код, так что это единственный путь. кроме того, <code>./configure</code> обычно принимает множество опций, позволяющих адаптировать ваш пакет.</p> <p>отсутствие возможности выяснить, какое программное обеспечение и какой файл установлены, и отсутствие надежного способа их удаления из системы являются основными недостатками этого подхода.</p> </li> <li> <p><strong>rpm</strong>(redhat package manager)</p> <p><code>rpm</code> устанавливает уже сконфигурированное и скомпилированное программное обеспечение в вашу систему, а также поставляется с деинсталляцией, чтобы снова избавиться от него. пакеты должны быть кем-то созданы. этот человек уже определился с тем, какие функции включить и как наилучшим образом интегрировать пакет в макет вашей системы. это также идет со списком зависимостей.</p> <p>поскольку rpms используются во многих дистрибутивах, вам часто нужно убедиться, что этот rpm был написан для вашего дистрибутива, чтобы пути установки, зависимости и другие вспомогательные функции хорошо интегрировались.</p> <p>в системах debian эквивалентный формат пакета - <code>.deb</code>, а установка и база данных обрабатываются инструментом <code>dpkg</code>.</p> </li> <li> <p><strong> yum </strong></p> <p><code>yum</code> - это дополнительная обертка вокруг <code>rpm</code>. он хранит свою собственную базу данных rpm-файлов, доступных для вашего распространения, как правило, в онлайн-хранилищах. для стабильных версий большинства дистрибутивов все пакеты в этой базе данных будут хорошо взаимодействовать друг с другом. в этой базе данных можно искать (например, с помощью <code>yum search some\_name</code>).</p> <p>это также автоматически разрешит зависимости для вас. пакеты (и с некоторой дополнительной помощью их зависимости) также могут быть легко удалены.</p> <p>в системах debian apt (<code>apt-get</code> и <code>aptitude</code>) предоставляет эквивалентные инструменты для репозитория и разрешения зависимостей.</p> </li> </ul><p>итак, подведем итог: если вы просто хотите какое-то программное обеспечение, попробуйте сначала <code>yum</code>. если его там нет, вы можете попытаться найти существующий пакет <code>rpm</code>. если его нет или у вас есть какие-то особые требования, соберите из исходного кода.</p>

<p>yum - это rpm - это то же самое, за исключением того, что yum автоматически получает пакеты из сети и устанавливает их (используя <code>rpm -i</code>) за один шаг. по возможности его следует использовать для облегчения обновления. используйте <code>rpm</code> только тогда, когда <code>yum</code> не найдет пакет, а метод <code>make</code> только тогда, когда пакет .rpm недоступен или вам нужно изменить некоторые параметры времени компиляции.</p>