Perbedaan antara "make install" dan "sudo make install"

15

Kadang-kadang saya mengalami masalah dengan penggunaan make installyang memberi saya permission deniedkesalahan saat menulis ke beberapa folder. Jadi secara naluriah saya gunakan sudo make install. Apakah ini akan menimbulkan masalah tambahan?

Saya menggunakan Debian Etch.

lokheart
sumber

Jawaban:

16

Hindari membuat pemasangan lokal ke direktori sistem. Direktori sistem misalnya /usr, dicadangkan untuk digunakan sistem manajemen paket. Menurut definisi, jika Anda melakukan make installitu berarti Anda membuat instalasi lokal, dan jika Anda perlu melakukan sudo make installitu berarti Anda tidak memiliki izin ke mana pun Anda menulis.

Jadi, jika Anda mendapatkan kesalahan izin dengan make install, periksa dan lihat apakah Anda mencoba untuk menginstal ke direktori sistem, dan menginstal ke dalam /usr/localatau yang serupa. /usr/localdicadangkan untuk instalasi lokal. Anda mungkin perlu memberi izin pada diri sendiri untuk menulis /usr/local, tetapi ini biasanya mudah dilakukan. Di Debian ini dapat dilakukan dengan menambahkan diri Anda ke staffgrup. Lebih baik lagi, cari atau buat paket biner, dan instal saja. Dengan begitu Anda dapat dengan mudah melacak paket yang diinstal dan mendapatkan manfaat lain dari manajemen paket.

Perhatikan bahwa sistem manajemen paket sebaliknya tidak menginstal ke /usr/local, sesuai FHS. Lihat Bagian 9.1 dari Manual Kebijakan Debian - Hirarki sistem file untuk tinjauan umum.

Faheem Mitha
sumber
3

Berikut ini ikhtisar dasar dari perintah tersebut:

  • sudo- jalankan perintah sebagai root
  • buat skrip untuk membangun dari sumber

Karena perintah sudo menjalankan perintah yang Anda berikan sebagai root, itu berarti bahwa perintah make memiliki hak pengguna-super. Ini berarti bahwa jika makefile berbahaya, atau salah satu skrip yang disebutnya berbahaya, maka itu dapat membahayakan sistem Anda.

Singkatnya, jika Anda tidak mempercayai perangkat lunak, jangan instal. Jika Anda mempercayai perangkat lunak, menjalankannya sebagai root seharusnya tidak menyakiti apa pun.

catatan:

sudo make installsama seperti su; make installpada kebanyakan kasus.

hajar
sumber
3
Anda benar untuk menyelesaikan dengan "dalam banyak kasus". Ini adalah kasus sudut.
ederag
3

Seperti yang telah dijawab di atas, sudo make installAnda dapat menginstal file dalam direktori yang hanya dapat dibaca oleh Anda sebagai pengguna.

Masalah yang dapat saya perkirakan adalah bahwa di kemudian hari Anda mungkin ingin menghapus atau meningkatkan program. Jika Anda masih memiliki pohon kode sumber direktori maka make uninstallakan menghapus program untuk Anda tetapi jika, seperti banyak pengguna biasa lainnya, Anda telah menghapus pohon direktori kode sumber maka Anda kurang beruntung. Dan karena Anda belum menginstal program menggunakan sistem manajemen paket, Anda mungkin juga tidak dapat menghapus instalasi program dengan cara itu.

Cara terbaik untuk menginstal program semacam itu adalah dengan menginstalnya di direktori home Anda. Lewati pilihan --prefix=/home/<user>/<some>/<directory>ke ./configure. Ini akan memungkinkan Anda untuk menggunakan make installalih-alih sudo make installkarena /home/<user>/<some>/<directory>dapat ditulis oleh Anda. Penghapusan instalasi juga mudah -rm -rf /home/<user>/<some>/<directory>

latexnewbie
sumber