Bagaimana cara memberitahu Ubuntu tempat menginstal suatu program dan bagaimana cara mengetahui di mana program yang ada diinstal?

10

Saya benar-benar baru di Ubuntu / Linux, menggunakan Server Ubuntu saat ini. Hanya mencoba mencari tahu sesuatu yang mendasar.

Bagaimana Anda bisa tahu di mana Anda menginstal suatu program. Misalnya saya baru saja menginstal mesin pencari Sphinx dengan menempatkan tarball yang saya unduh dari situs mereka ke:

/home/sphinx

direktori. Saya membuat direktori sphinx untuk menempatkan tarball itu. Lalu saya menjalankan perintah ini:

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

dan kemudian ini:

make
sudo make install

Sekarang saya memiliki banyak file yang duduk di direktori tempat saya menjalankan perintah ini. Apakah ini instalasi Spynx saya atau apakah itu menginstal di tempat lain?

Di windows jika Anda menjalankan penginstal (file .exe) di mana pun program masih akan menginstal di direktori C: \ Program Files. Apakah sesuatu yang serupa berlaku untuk linux di mana semua program diinstal di tempat sentral, atau Anda dapat menginstal program di mana saja pada sistem.

Pertanyaan

  1. Saya lebih suka menyimpan semua program yang saya instal di satu tempat sehingga tempat yang tepat untuk ini dalam hal praktik terbaik. Dengan kata lain apa yang setara dengan Linux dari C: \ Program Files?

  2. Dan bagaimana seseorang selalu menginstal di lokasi ini, apakah itu hanya masalah menempatkan tarball dan menjalankan perintah instal dari lokasi ini?

  3. Bagaimana jika saya menggunakan sudo apt-get untuk menginstal paket. Bagaimana saya bisa menunjuk ke lokasi ini untuk memberi tahu apt-get agar selalu menginstal di sana?

JakeRow123
sumber

Jawaban:

15

Apakah sesuatu yang serupa berlaku untuk linux di mana semua program diinstal di tempat sentral

Perkiraan setara dengan Windows menginstal direktori di Linux

  • \Windows = /bin
  • \Windows\System32= /libdan/sbin
  • \Program Files= /usr/bindan/usr/lib

Saya lebih suka menyimpan semua program yang saya instal di satu tempat sehingga tempat yang tepat untuk ini dalam hal praktik terbaik. Dengan kata lain apa yang setara dengan Linux dari C: \ Program Files?

Itu akan menjadi direktori di bawah /usr, secara khusus /usr/bindan /usr/lib.

Dan bagaimana seseorang selalu menginstal di lokasi ini, apakah itu hanya masalah menempatkan tarball dan menjalankan perintah instal dari lokasi ini?

  • Tidak. Di mana Anda berada saat menjalankan perintah instal hampir tidak pernah berarti.

  • Program yang Anda instal melalui apt-get(atau aptitude) hampir selalu berakhir dengan semestinya /usr. TETAPI program yang Anda kompilasi dari sumber dan make installakan lebih sering berakhir di /usr/local/bin,, /usr/local/libdll, dan Anda mungkin memiliki masalah dengan itu karena jalur yang diinstal pengguna di Debian / Ubuntu adalah /usrdan tidak /usr/local.

  • Ketika kompilasi dari sumber, tambahkan switch ini untuk mengkonfigurasi: ./configure --prefix=/usr. Dengan cara ini make install, file-file Anda akan berakhir di direktori yang benar

  • Lihat juga ke dalam checkinstallprogram, yang melacak file-file yang dikompilasi paket dari sumber menginstal, membuat file deb, dan memungkinkan untuk menghapus / menginstal ulang dengan mudah.

Bagaimana jika saya menggunakan sudo apt-get untuk menginstal paket. Bagaimana saya bisa menunjuk ke lokasi ini untuk memberi tahu apt-get agar selalu menginstal di sana?

apt-getSaya dpkgurus ini secara otomatis. Anda dapat menggunakan dpkg -L name-of-packageuntuk melihat semua file yang diinstal oleh suatu paket dan di mana mereka diinstal.

ish
sumber
terima kasih atas jawaban terinci, hanya satu pertanyaan. Karena Anda mengatakan "Tidak. Di mana Anda berada saat Anda menjalankan perintah instalasi hampir tidak pernah berarti.", Apakah ini berarti sekarang saya telah menginstal program, saya dapat dengan aman menghapus folder Sphinx di / home / sphinx / yang saya ekstrak dari tarball dan jalankan instal dan buat perintah? Apakah ini sekarang setara dengan installer yang sudah saya jalankan untuk menginstal sebuah program dan sekarang tidak digunakan?
JakeRow123
1
Ya, Anda dapat menghapus folder yang diekstrak dari tarball - itu pada dasarnya seperti folder "temp" yang diekstrak oleh penginstal dan sekarang tidak berguna. Itu pertanyaan yang bagus, saya akan mengedit jawaban untuk memasukkan info ini.
ish
Anda bisa, tetapi kemudian Anda akan memiliki masalah menghapus instalannya dengan 'make uninstall'. Di Debian / Ubuntu Anda seharusnya tidak pernah menginstal perangkat lunak Anda di awalan / atau / usr, Anda harus menggunakan / usr / lokal. Mengapa, karena / usr / local dibuat untuk administrator lokal, itulah Anda JakeRow123, untuk menginstal program mereka sendiri. / dan / usr hanya untuk paket Debian. Jika Anda menginstal di sana, salurannya besar sehingga Anda akan mendapatkan masalah. Jadi gunakan saklar '--prefix = / usr / local' ke perintah configure ketika Anda mengkompilasi milik Anda. Lalu buat; sudo make install 'akan menginstal program Anda di sana.
Anders
@Anders, make uninstallBUKAN fitur standar dan tidak ditemukan di banyak sumber program. Juga, /usr/localsering tidak ada di jalur pada Ubuntu dan dapat menyebabkan masalah ketika mencoba menjalankan program atau mencoba untuk mengkompilasi (karena termasuk dalam /usr/local).
ish
Anda TIDAK boleh menginstal perangkat lunak di tempat yang salah, seperti di bawah / usr dan tidak di tempat yang tepat seperti / usr / lokal. Anda harus memperbaiki kesalahan dengan PATH jika lingkungan komputer / pengguna tidak diatur dengan benar. Menginstal di bawah / atau / usr AKAN membuat Anda kesulitan. Percayalah pada saya tentang ini. Telah ada dan melakukan itu. Itu TIDAK menyenangkan. Sama sekali. Beberapa program, semua dengan autoconfig, di mana Anda mengatur dengan perintah configure mendapat uninstall. Orang lain yang tidak memilikinya tidak membantu, dan harus melaporkan bug ...
Anders
4

Biasanya program diinstal dalam beberapa direktori di bawah satu direktori teratas , yang disebut awalan . Direktori teratas mana yang digunakan tergantung pada siapa yang menginstal, untuk tujuan penyihir dan siapa yang akan mengelola perangkat lunak.

Awalan /usradalah perangkat lunak yang digunakan dikemas oleh distribusi Anda. Anda tidak boleh menginstal perangkat lunak lain di sana, karena itu akan membingungkan distribusi ketika menginstal dan meningkatkan perangkat lunak yang dikemas oleh distribusi. Jadi tolong jangan menginstal perangkat lunak terkompilasi Anda sendiri di sana. Itu bukan ide yang baik, kecuali Anda benar-benar tahu apa yang Anda lakukan. Dan kecuali Anda adalah pengembang Debian atau Ubunut, Anda biasanya tidak. Saya tidak akan melakukan itu.

Untuk perangkat lunak komersial, awalan /optdigunakan. Ini disediakan bagi mereka untuk paling tidak mengganggu distribusi dan administrator sistem lokal.

Untuk perangkat lunak administrator sistem menginstal untuk semua pengguna, awalan /usr/localdigunakan. Ada Itu keluar dari jalan baik dari instalasi komersial atau distribusi dan tidak akan mengganggu mereka. Jadi sebagai administrator sistem Anda menggunakannya (jika Anda memiliki hak akses root, Anda adalah administrator sistem).

Jika Anda adalah pengguna biasa yang memasang perangkat lunak untuk diri sendiri, Anda dapat menggunakan direktori home Anda sebagai awalan, dengan menggunakan --prefixopsi untuk configuredengan direktori " ~/" awalan atau $HOME/. Saya sering menggunakannya ketika masih menjadi mahasiswa. :-)

Biasanya perangkat lunak melakukan hal yang benar ketika Anda mengeksekusi configuredengan opsi --prefixdengan nilai yang benar dan kemudian make; make install.

Di bawah salah satu awalan ini, Anda biasanya menemukan direktori ini di instalasi standar.

  • bin - program yang dapat dieksekusi, binari.
  • sbin - binari sistem, yang biasanya tidak boleh dijalankan oleh pengguna biasa.
  • man - halaman manual untuk program, perpustakaan dan file konfigurasi dll.
  • etc - file konfigurasi dengan nilai default untuk perangkat lunak.
  • lib - pustaka program dan file data yang bergantung pada arsitektur (seperti CPU) di komputer Anda.
  • share - file data yang tidak berbeda pada arsitektur yang berbeda, dan dapat dibagi antara komputer yang berbeda.
  • var- direktori dengan data yang berubah selama eksekusi program. Seperti mencatat file dll.

Sebagian besar direktori tersebut dapat digunakan dengan sistem file yang dilindungi tulis untuk meningkatkan keamanan. Satu-satunya yang perlu ditulis pengguna adalah var/direktori. Ketika perangkat lunak diperbarui direktori ini jelas (?) Harus memiliki hak istimewa menulis. Itu dapat dilakukan dengan remount dengan hak istimewa menulis selama instalasi dan kemudian remount dengan hanya membaca setelah instalasi. Tetapi ini sudah maju, dan saya hanya memberikannya sebagai contoh manajemen paket tingkat lanjut.

Ada juga beberapa direktori langsung di bawah /(direktori root) yang tidak ada di bawah awalan lain, seperti /dev, /tmp, /procdan /srv(untuk server direktori data, tetapi mereka biasanya di bawah /var/libatau /var/wwwdan direktori seperti itu, sehingga Anda perlu mengubah konfigurasi untuk gunakan direktori ini. Saya sarankan Anda melakukannya ketika Anda menjalankan server. Hanya gunakan /var/untuk menguji instalasi standar).

  1. Linux bukan MS Windows. Ada banyak tempat untuk menempatkan program yang Anda instal. Itu tergantung siapa yang menginstal dan untuk siapa. Baca di posting saya. Memperhatikan. RedHat menggunakan /usrsebagai menggunakan Debian / Ubuntu /usr/local. Pelajari distribusimu.
  2. Program yang berbeda memiliki metode instalasi yang berbeda. --prefixberguna untuk menggunakan program configure. Cara terbaik untuk mengetahuinya adalah dengan membaca README.txtfile atau sesuatu seperti itu, yang mungkin disediakan dalam arsip tar. Arsip tar dapat diekstraksi di mana saja, seperti direktori home Anda. Setelah langkah instalasi selesai, Anda bisa menghapus arsip tar yang diekstraksi, jika Anda kekurangan penyimpanan. Tapi jangan lakukan itu sejak awal, kecuali Anda telah menguji instalasi Anda dengan benar.
  3. Program yang diinstal dengan apt-getatau aptitudeselalu dipasang di tempat yang tepat untuk distribusi. Anda tidak dapat mengubah tempat itu.
Anders
sumber
2

Ketika Anda menginstal program dari repositori menggunakan instalasi normal, itu akan menginstal ke tempat yang benar, membuat file konfigurasi di tempat yang tepat (secara fungsional mirip dengan registri Windows), dan membuat entri menu secara otomatis.

Ketika Anda mengunduh file (tidak disukai, tetapi sering kali diperlukan ketika aplikasi tidak ada dalam repositori), maka hal pertama yang Anda lakukan adalah menjalankan tar, setara dengan unzip di Windows. Ini menciptakan file yang kemungkinan besar Anda lihat.

Kemudian, ketika Anda menjalankan make install, yang biasanya akan menempatkan hasilnya di tempat yang tepat, mungkin membuat menu, tetapi itu tidak akan menghapus file yang tidak ter-tarred. Kemungkinan besar Anda bisa melakukan itu, tetapi Anda mungkin ingin menyimpannya sementara untuk berjaga-jaga.

Berikut ini adalah artikel menarik tentang Struktur Direktori Debian .

Marty Fried
sumber
Artikel yang bagus, kecuali bahwa itu tidak memiliki referensi ke / usr / local tempat Anda menginstal perangkat lunak Anda sendiri untuk tidak bertentangan dengan perangkat lunak yang diinstal oleh sistem dan Anda mendistribusikan (seperti Ubuntu) paket. Untuk menginstal perangkat lunak Anda sendiri di bawah / atau / usr adalah untuk meminta masalah, masalah yang mungkin hanya solusi untuk menginstal sistem dari awal lagi ...
Anders