Kemungkinan Duplikat:
Dimana program Linux yang umum diinstal
Saya baru mengenal Linux dan saya ingin bertanya lebih banyak tentang paket.
Di Windows, saya mengunduh .exe
file dan menginstalnya. Ketika saya menginstal, saya menentukan jalur di mana saya ingin aplikasi itu disimpan. Dalam folder itu, saya memiliki semua file yang diperlukan untuk aplikasi.
Namun, ketika saya menginstal paket di Linux menggunakan yum
atau apt-get
, saya tidak tahu di mana paket itu diinstal dan di mana file yang diperlukan untuk aplikasi itu disimpan. Saya telah melihat bahwa sebagian besar konfigurasi ada di /etc
direktori. Tetapi mengapa Linux menyimpan file yang diperlukan untuk aplikasi di direktori yang berbeda?
Dapatkah seseorang memberi tahu saya bagaimana paket diinstal, dan di mana dan bagaimana mereka disimpan? Dan jika pemahaman saya tentang manajemen paket salah, mohon koreksi saya.
rpm
, Anda dapat menggunakanrpm -q --whatprovides
untuk menemukan nama paket untuk file tertentu dan kemudianrpm -q -a
untuk mencari tahu file apa yang diinstal paket.apt-get
, jika paket diinstal gunakandpkg -L PKGNAME
, jika tidak digunakanapt-file list
.Jawaban:
Banyak program (binari / skrip) berakhir di
/bin
atau/usr/bin
dengan bagian lain di berbagai direktori konfigurasi (sering di / bawahetc
) seperti yang telah Anda catat.Untuk perintah tertentu, Anda dapat checkout di mana
dan itu akan memberi Anda beberapa informasi tentang di mana perintah ini dapat ditemukan. Anda juga bisa mencoba yang mana
Juga, grafik dan penjelasan / contoh ini mungkin bisa membantu.
sumber
/etc/
, tetapi memiliki satu lokasi pusat untuk file konfigurasi membuatnya sangat mudah untuk membuat cadangannya. (Bayangkan buat cadangan file konfigurasi sistem di Windows, di mana mereka tersebar di seluruh sistem file dan registri ...)Di bawah Windows, terutama versi yang lebih lama, itu umum untuk program untuk menyimpan file konfigurasi dan data yang tidak konstan dalam
C:\Program Files
direktori mereka . Ini berasal dari bagaimana program biasanya diinstal dan dijalankan di bawah DOS single-user, non-jaringan, non-file.Dari sudut pandang keamanan, ini adalah ide yang buruk. Tempat di mana kode yang dapat dieksekusi harus dipisahkan dari data yang dapat dimodifikasi. Dengan begitu lebih mudah untuk menerapkan izin file yang sesuai untuk mencegah modifikasi binari yang diinstal oleh pengguna yang tidak sah. Demikian pula direktori perpustakaan yang dapat diperbarui secara terpisah dari executable utama juga harus di direktori yang terpisah.
Dengan munculnya gangguan Vista dan UAC, tradisi ini akhirnya mulai kehilangan daya tarik.
UNIX, dan Linux, sebagai sistem multiuser dari jauh sebelumnya, memiliki kecenderungan untuk memisahkan direktori yang dapat dieksekusi dari direktori lain jauh lebih awal, karena ada kebutuhan untuk mencegah pengguna selain root untuk memodifikasi binari yang diinstal. Itu juga mengapa
/usr
dan bahkan/sbin
kadang-kadang partisi yang terpisah - admin yang sangat sadar keamanan dapat me-mount partisi tersebut hanya baca dan tulis mereka baca / tulis ketika instalasi / uninstall perlu terjadi.Paket biasanya diinstal dari manajer paket. Ada berbagai manajer paket, seperti
aptitude
(Debian dan distribusi yang diturunkan),yum
(Redhat dan distribusi yang diturunkan),pacman
(lupakan distro mana ini ...), dan lainnya.Manajer paket memungkinkan Anda menjelajahi repositori, mengunduh, memasang, menanyakan, dan menghapus perangkat lunak, seperti "app store" yang canggih (dan gratis). Ini mengasumsikan tanggung jawab untuk memastikan dependensi dijaga dan melacak apa yang saat ini diinstal.
Biasanya manajer paket juga akan mengizinkan operasi yang sama pada paket yang Anda unduh secara manual di luar repositori mana pun. Alat juga tersedia jika Anda ingin membuat sendiri dari perangkat lunak yang Anda buat atau kompilasi sendiri.
Karena paket itu sendiri BUKAN file yang dapat dieksekusi, Anda tidak perlu menjalankan file yang tidak dapat dieksekusi yang Anda tidak benar-benar tahu apa fungsinya. (Windows akhirnya hadir dengan pembaruan dengan mendistribusikan
.msu
bukan.exe
- tetapi.msi
sudah ada beberapa saat ...)sumber
Anda bisa mendapatkan daftar file yang
yum
diinstal paket dengan melakukan:Maka Anda dapat menjalankannya seperti ini:
(Jelas, ganti "yum-utils" di yang kedua dengan nama paket yang daftar file-nya ingin Anda lihat.)
Untuk
apt-get
, Anda dapat menggunakan:sumber
Biasanya di bawah
/usr/bin
, meskipun tergantung pada aplikasi atau pustaka tertentu yang Anda instal.sumber
Di Linux / Unix, kebanyakan program biasanya tidak berakhir dalam satu direktori, tetapi bagian yang berbeda (file executable, file konfigurasi, file log, dokumentasi, sumber daya lainnya) tersebar melalui sistem file - biasanya melalui symlinking. The Artikel Wikipedia menjelaskan lebih detail struktur direktori standar di bawah hirarki filesystem normal, menunjukkan direktori yang berbeda dan apa yang dapat Anda harapkan untuk menemukan di setiap.
sumber
The
/opt
direktori dicadangkan untuk instalasi Windows seperti di mana masing-masing paket memiliki pohon direktori sendiri. Tidak ada yang menggunakannya. Saya tidak yakin mengapa; mungkin menambahkan bahwa/opt/PACKAGE/bin
Anda$PATH
setiap kali Anda menginstal paket terlalu mengganggu.sumber
/opt
tampaknya sebagian besar digunakan oleh paket perangkat lunak komersial / tidak bebas, seperti MATLAB./opt
tetapi LibreOffice 3.5 yang saya instal langsung dari sini .Perangkat lunak di Linux sedikit berbeda dalam paradigma dari Windows atau Mac. Pada file-file tersebut, file yang dapat dieksekusi dan semua file pendukungnya diinstal ke dalam satu folder: Windows biasanya menyimpannya
c:\Program Files\program name
, di Apple/Applications/program.app
. Di Linux, ada lagi ... struktur komunal. Binari-binari pada umumnya ada di/usr/bin
, konfigurasi seluruh sistem dalam/etc
, konfigurasi khusus pengguna biasanya di~/.program
. Perpustakaan ada di/usr/lib
dalamnya, file pendukung (mis. Karya seni) sering ada/usr/share/program
, dll. Bahkan ada standar yang menunjukkan ke mana harus pergi.Program umumnya diinstal oleh manajer paket,
rpm
dandpkg
; mereka secara otomatis dicari dan diambil (termasuk manajemen ketergantungan) olehyum
danaptitude
/apt-get
, masing-masing. Pada tingkat yang lebih teknis, paket-paket tersebut adalah file terkompresi sederhana (saya percaya rpm dan deb keduanya.tar.gz
). Arsip-arsip ini berisi mirror dari potongan-potongan filesystem dari root di mana file-file itu pergi (misalnya file yang seharusnya diinstal/usr/bin/program
akan berada diusr/bin/program
bawah folder yang sesuai dalam paket.Untuk menemukan informasi tentang paket tertentu, gunakan pengelola paket untuk sistem Anda, seperti yang dijelaskan di sini.
sumber
Halaman hier hier dapat memberikan beberapa wawasan
sumber