Яка різниця між yum, apt-get, rpm, ./configure && make install?


126

Я новачок у 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?

Крім того , що про yumпроти up2date. Мені ніколи не було зрозуміло в різниці.
Джош

apt-getпризначений для Debian, і він справді не повинен з’являтися на CentOS ....
Кайл Странд

Відповіді:


114

Ці інструменти всі встановлюють програмне забезпечення у вашу систему, але працюють на різних рівнях.

  • ./configure && зробіть встановлення

    Запуск ./configure && make installстворює та встановлює бібліотеки або виконувані файли безпосередньо з вихідного коду.

    Цей make installкрок в основному просто копіює кінцеві файли у вашу систему. Багато джерел мають спеціальне make uninstallправило, щоб видалити їх знову, але це не гарантується, і, звичайно, працює лише до тих пір, поки у вас є налаштовані джерела. Також це не переймається необхідними залежностями.

    Часто для певного пакету доступний лише вихідний код, тому це єдиний шлях. Крім того, ./configureзазвичай приймається безліч варіантів, що дозволяють вам підготувати пакет.

    Неможливість з'ясувати, яке програмне забезпечення встановлено, який файл та відсутність надійного способу їх видалення із системи - основні недоліки цього підходу.

  • RPM (Менеджер пакетів Redhat)

    rpmвстановлює вже налаштоване та скомпільоване програмне забезпечення у вашій системі, а також видаляється, щоб знову його позбутися. Пакети має створити хтось. Ця особа вже вирішила, які функції включити та як найкраще інтегрувати пакет у ваш макет системи. Він також постачається зі списком залежностей.

    Оскільки rpms використовуються для багатьох дистрибутивів, ви часто хочете переконатися, що цей rpm написано для вашого розповсюдження, щоб встановити шляхи, залежності та інші речі з ведення господарства добре інтегруватися.

    У системах Debian еквівалентний формат пакету, .debа установка та база даних обробляються dpkgінструментом.

  • Ням

    yumє додатковою обгорткою навколо rpm. Він зберігає власну базу даних файлів rpm для розповсюдження, як правило, в онлайн-сховищах. Для стабільних версій більшості дистрибутивів усі пакети всередині цієї бази даних будуть добре грати один з одним. У цій базі даних можна шукати (наприклад, за допомогою yum search some_name).

    Це також автоматично вирішить залежності від вас. Пакети (і за допомогою додаткової допомоги, залежність від них) також можна легко видалити.

    У системах Debian еквівалентні інструменти сховища та вирішення залежностей надаються Apt ( apt-getі aptitude).

Отже, підсумовуючи це: якщо ви просто хочете трохи програмного забезпечення, спробуйте yumспочатку. Якщо він там недоступний, ви можете спробувати знайти існуючий rpmпакет. Якщо таких немає або у вас є особливі вимоги, будуйте з джерела.


майже що я збирався сказати. додано в згадці про еквіваленти debian і торкнулося форматування.
шарлатаний кіхот

2
@quack: Дякую Але чи не можемо ми просто замовкнути, apt-getабо все-таки рекомендується щось?
Бенджамін Баньє

2
ви маєте рацію, здатність , мабуть, краще рекомендувати; Я включив apt-get, оскільки про нього широко згадують, і читач, який не знає про придатність, можливо, чув про apt-get .
шарлатаний кіхот

4
Що не так з apt-get?
рекурсивна

5
@recursive: Деякий час apt-getне записував автоматичні залежності та залишав їх після видалення, тоді як aptitudeзапровадив належне відстеження залежності. Крім того, він також надав деякі додаткові функції, недоступні в apt-get. Я не впевнений, але я думаю, що в якийсь момент apt-getі aptitudeде оновлено, щоб використовувати той самий, розширений сервер, який забезпечує більшу частину цієї функціональності.
Бенджамін Баньє

5

Yum are RPM - це те саме, за винятком того, що yum автоматично отримує пакети з мережі та встановлює їх (використовуючи rpm -i) за один крок. Її слід використовувати, коли це можливо, щоб полегшити оновлення. Використовуйте rpmлише тоді, коли не знайдено жодного пакету yum, а використовуйте makeметод лише тоді, коли немає доступного пакету .rpm або вам потрібно змінити деякі параметри часу компіляції.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.