Apa perbedaan antara yum, apt-get, rpm, ./configure && make install?

126

Saya baru mengenal Linux dan menjalankan CentOS. Saya telah menemukan empat cara untuk memperbarui atau menginstal perangkat lunak.

Sejauh ini, saya telah melihat:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz-> unpack-> ./configure-> make->make install

Yang terakhir itu sangat menyebalkan, terutama yang datang dari Windows, di mana instalasi program biasanya satu klik dan panduan instalasi yang bagus.

Jadi, pertanyaan saya adalah:

  • Mengapa ada begitu banyak cara untuk melakukan ini di Linux?
  • Yang mana yang Anda rekomendasikan untuk digunakan, dan mengapa?
  • Apakah ada cara lain untuk menginstal program di Linux?
Saif Bechan
sumber
Juga, bagaimana yumvs up2date. Saya tidak pernah jelas tentang perbedaannya.
Josh
apt-getadalah untuk Debian, dan benar-benar tidak boleh muncul di CentOS ....
Kyle Strand

Jawaban:

114

Semua alat ini menginstal perangkat lunak ke dalam sistem Anda, tetapi bekerja pada level yang berbeda.

  • ./configure && buat instal

    Menjalankan ./configure && make installmembangun dan menginstal perpustakaan atau executable langsung dari kode sumber.

    The make installLangkah dasarnya hanya copy file akhir ke dalam sistem Anda. Banyak sumber datang dengan make uninstallaturan khusus untuk menghapusnya lagi, tetapi ini tidak dijamin dan tentu saja hanya berfungsi selama Anda memiliki sumber yang dikonfigurasi. Juga, ini tidak menangani ketergantungan yang diperlukan.

    Seringkali hanya ada kode sumber yang tersedia untuk paket tertentu, jadi ini adalah satu-satunya cara untuk pergi. Juga, ./configurebiasanya menerima banyak opsi yang memungkinkan Anda menyesuaikan paket Anda.

    Tidak dapat menemukan perangkat lunak apa yang menginstal file mana, dan kurangnya cara yang dapat diandalkan untuk menghapusnya dari sistem adalah kelemahan utama dari pendekatan ini.

  • RPM (Redhat Package Manager)

    rpmmenginstal perangkat lunak yang sudah dikonfigurasikan dan dikompilasi di sistem Anda dan juga disertai dengan uninstall untuk menyingkirkannya lagi. Paket harus dibuat oleh seseorang. Orang ini sudah memutuskan fitur apa yang akan dimasukkan dan bagaimana mengintegrasikan paket ke dalam tata letak sistem Anda. Itu juga dilengkapi dengan daftar dependensi.

    Karena rpms digunakan untuk banyak distribusi di sana, Anda mungkin ingin memastikan bahwa rpm ini ditulis untuk distribusi Anda sehingga menginstal jalur, dependensi, dan hal-hal housekeeping lainnya terintegrasi dengan baik.

    Pada sistem Debian, format paket yang setara adalah .debdan instalasi serta basis data ditangani oleh dpkgalat.

  • Yum

    yumadalah pembungkus tambahan di sekitar rpm. Itu membuat database sendiri file rpm tersedia untuk distribusi Anda, umumnya di repositori online. Untuk versi stabil dari sebagian besar distribusi, semua paket di dalam basis data itu akan cocok satu sama lain. Basis data ini dapat dicari (misalnya dengan yum search some_name).

    Ini juga akan secara otomatis menyelesaikan dependensi untuk Anda. Paket (dan dengan bantuan ekstra ketergantungannya) dapat dengan mudah dihapus juga.

    Pada sistem Debian, alat repositori dan resolusi dependensi yang setara disediakan oleh Apt ( apt-getdan aptitude).

Singkatnya: jika Anda hanya ingin beberapa perangkat lunak, coba yumdulu. Jika tidak tersedia di sana, Anda dapat mencoba menemukan rpmpaket yang ada . Jika tidak ada atau Anda memiliki persyaratan khusus, bangun dari sumber.

Benjamin Bannier
sumber
cukup banyak apa yang akan saya katakan. menambahkan penyebutan padanan yang setara dan menyentuh formatnya.
quack quixote
2
@ quack: Terima kasih. Tapi tidak bisakah kita semua diam saja apt-getatau masih direkomendasikan untuk apa pun?
Benjamin Bannier
2
Anda benar, bakat mungkin adalah yang terbaik untuk direkomendasikan; saya termasuk apt-get karena itu banyak disebut, dan pembaca yang tidak tahu tentang aptitude mungkin pernah mendengar tentang apt-get .
quack quixote
4
Apa yang salah dengan apt-get?
Rekursif
5
@recursive: Kadang-kadang apt-gettidak merekam dependensi otomatis dan meninggalkannya setelah uninstall, sementara aptitudekemudian memperkenalkan pelacakan dependensi yang tepat. Selain itu juga disediakan beberapa fitur tambahan yang tidak tersedia di apt-get. Saya tidak yakin, tapi saya pikir di beberapa titik apt-getdan di aptitudemana diperbarui untuk menggunakan backend yang sama, maju menyediakan banyak fungsi itu.
Benjamin Bannier
5

Yum adalah RPM adalah hal yang sama kecuali bahwa yum mendapatkan paket dari internet secara otomatis dan menginstalnya (menggunakan rpm -i) dalam satu langkah. Ini harus digunakan sedapat mungkin untuk memudahkan pembaruan. Gunakan rpmhanya ketika tidak ada paket yang dapat ditemukan yum, dan gunakan makemetode ini hanya ketika tidak ada paket .rpm tersedia atau Anda perlu mengubah beberapa opsi waktu kompilasi.

marcusw
sumber