Mengapa beberapa paket menggunakan 'make install' sementara yang lain menggunakan 'sudo make install'

8

Saya baru-baru ini menginstal LAME encoder di server saya untuk mengonversi wav ke mp3 dan itu berfungsi baik ./configure; make; make install.

Saya kemudian mencoba menginstal OGG encoder dan itu membutuhkan './configure, make, sudo make install' - yang tidak bisa saya lakukan, karena saya tidak punya VPS (dan saya lebih suka tidak membayar $ 15 sebulan untuk VPN hanya untuk menginstal codec).

Saya baru dalam hal ini, dan saya mengerti sudo memberi Anda izin - tetapi saya telah mencoba mencari tahu mengapa beberapa make installs memerlukan akses sudo dan yang lain tidak. Saya belum menemukan jawabannya.

alexbooots
sumber
Anda harus dapat mengubah Makefile (atau beberapa templat yang membuat Makefile dihasilkan) atau meneruskan opsi baris perintah ke sesuatu (mungkin ./configure) untuk membuatnya menginstal di direktori yang berbeda (mungkin yang Anda tidak perlu sudomengaksesnya) ).

Jawaban:

7

Biasanya saya mencoba menjalankannya tanpa cara sudo- terkadang berhasil. Terkadang pembuat paket berpikir sudodiperlukan, mereka menggunakannya karena preferensi mereka, atau memilih untuk menginstal hal-hal di area non-pengguna sistem. Kadang-kadang ini perlu, tetapi sering kali tidak.

Alasan umum lainnya yang saya lihat untuk penggunaan sudoadalah dalam posting blog oleh pihak ke-3 yang menjelaskan cara menginstal perangkat lunak, dan bukannya bekerja lebih keras dan menjelaskan kepada Anda cara menginstalnya tanpa sudohak istimewa, mereka memberitahu Anda untuk menggunakannya sudokarena orang tersebut menulis posting hanya menggunakan sudountuk semuanya, yang sebenarnya bukan ide yang bagus.

Secara teoritis, satu-satunya alasan paket harus mengharuskan sudoadalah jika diperlukan (atau memutuskan) untuk menginstal sendiri ke / atau memodifikasi area sistem yang hanya dapat dimodifikasi melalui akses administrator.

Secara umum, semakin sedikit paket yang masih melakukan ini, karena kebutuhan pengguna untuk menginstal beberapa perangkat lunak tanpa sudoakses tumbuh.

usaha keras
sumber
2
Sebagian besar paket harus memiliki opsi konfigurasi di suatu tempat sehingga Anda dapat menginstalnya di lokasi lain. Menggunakannya mungkin membutuhkan sedikit usaha, tetapi jika Anda tidak bisa, sudoitulah yang membuat Anda terjebak.
6

Itu tergantung apakah Anda menginstalnya untuk Anda atau untuk semua pengguna. (Sebagian besar. Beberapa hal seperti modul kernel akan memerlukan akses root terlepas dari siapa yang akan menggunakan fitur akhir.)

Sebagian besar program yang menyediakan ./configureskrip juga menerima --prefix=~/binatau --prefix=~/Local/agar Anda dapat menginstalnya ke direktori home Anda. Tidak semua program menyediakan ./configure, tetapi sebagian besar menyediakan beberapa mekanisme Makefileyang memungkinkan Anda untuk mengkonfigurasi tujuan pemasangan.

Jadi: apakah perpustakaan / program Anda untuk Anda atau untuk semua pengguna di sistem Anda?

sarnold
sumber
Mereka hanya untuk saya gunakan .. dan, brill! .. Saya menggunakan ./configure --exec-prefix = / home / nama pengguna / folder --prefix = / home / nama pengguna / folder dan sepertinya sudah melalui ok tanpa sudo (yang tidak ketika hanya menggunakan ./configure) untuk libogg, libvorbis, memiliki beberapa masalah dengan libtheora dan vorbis-tools tetapi tidak yakin tentang apa itu. Saya harus bisa mendapatkannya. Terima kasih!
3
Anda mungkin perlu menggunakan opsi baris perintah seperti --theora-path=/home/username/folderketika menyusun program lebih lanjut - pastikan untuk membaca READMEatau file yang serupa untuk mempelajari variabel mana yang mungkin perlu diubah.
sarnold
0

Sebagian besar untuk membaca / menulis / mengeksekusi izin file. Sudo tidak memiliki hak terbatas.

Pikirkan akun admin di Windows, dibandingkan akun pengguna atau tamu dengan hak terbatas. Hal yang sama.

Gembrengan
sumber