GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menginstal file tar.gz di Linux - bagaimana mengelola aplikasi yang diinstal secara manual (atau mandiri)?

Mengapa banyak aplikasi tidak tersedia di repo paket?

Mungkin ada banyak alasan:

  • Tidak ada yang repot mengemas aplikasi.
  • Tidak seorang pun diizinkan untuk memaketkan aplikasi (seperti Oracle yang bersikeras menjadi satu-satunya yang mendistribusikan Java).
  • Paket diterbitkan di bawah lisensi yang bertentangan dengan nilai distro.
  • ...

Tidak ada satu alasan pun. Jika Anda ingin melihat aplikasi favorit Anda di pengelola paket distro, Anda harus memperlakukan setiap kasus secara terpisah. Cobalah untuk menghubungi pengembang (di saluran IRC atau milis misalnya) dan tanyakan bagaimana Anda dapat membantu pengemasan.

Bagaimana cara memasang tarball?

Tarball (paket .tar.gz) dapat berisi apa saja. Sampai Anda benar-benar membukanya, Anda tidak memiliki cara untuk mengasumsikan cara menginstalnya. Sekali lagi, setiap paket harus didekati secara berbeda.

Cari dokumentasi! Setiap paket (semi-)layak akan memberikan instruksi tentang cara memasang aplikasi. Refleks pertama Anda harus selalu mencari file teks bernama README, INSTALL atau sesuatu seperti ini. Memeriksa situs web penerbit juga dapat membantu.

Karena setiap paket berbeda, tidak ada cara universal untuk memproses setiap tarbal di dunia. Itu seperti meminta resep yang cocok untuk semua bahan di dunia. Tidak terjadi.

Pengetahuan yang baik tentang sistem Anda, distro Anda, dan lingkungan desktop Anda akan membantu, jadi, jika ini meyakinkan, segalanya akan terlihat semakin dapat diprediksi saat Anda menghabiskan waktu di dunia linux.

Kasus khusus:Autotools

Saat proyek tumbuh lebih besar, mereka perlu menyediakan cara mudah untuk berpindah dari kode sumber ke biner untuk menginstal penuh pada sistem. Inilah mengapa mereka dikirimkan dengan sistem build tersemat, kumpulan skrip untuk melakukan yang diperlukan.

Di dunia Linux/Open Source/Perangkat Lunak Bebas, satu sistem build mendapat adopsi yang lebih luas:GNU Autotools. Jika Anda pernah berurusan dengan paket sumber (n terbuka), ada kemungkinan besar Anda akan menggunakan Autotools.

Dalam kasus paling sederhana, berikut cara memasang aplikasi yang dikemas dengan alat otomatis:

  • ./configure :Skrip yang akan menghasilkan Makefile yang sesuai dengan sistem Anda (skrip ini juga sering memeriksa ketersediaan dependensi).
  • make :Mengkompilasi kode sumber sesuai dengan Makefiles yang dihasilkan sebelumnya.
  • make install :Menyalin biner ke lokasi yang sesuai, membuat symlink, dan langkah lain yang ditentukan oleh developer.

Catatan

  • configure skrip biasanya memiliki banyak opsi, seperti kompiler mana yang akan digunakan atau cara menentukan direktori target. Jika Anda membutuhkan fleksibilitas, ada baiknya melihat ./configure --help .
  • Bahkan jika Anda yakin itu adalah Autotools dan Anda mengetahuinya dengan sangat baik, selalu mulailah dengan membaca dokumen (README, INSTALL, ...)

Jawaban pembaruan dalam pertanyaan

Apa yang Anda minta tidak memiliki jawaban yang pasti. Setiap orang di sini mungkin memiliki pendapat tentang apa yang dimaksud dengan "praktik yang baik", tetapi pada akhirnya, hanya Anda yang dapat menemukan apa yang cocok untuk Anda . Jika ada jawaban yang mudah, Anda tidak akan mengajukan pertanyaan. Distro Anda akan menjawabnya untuk Anda.

Karena itu, inilah beberapa komentar pribadi.

  • Di sistem saya, saya memesan /usr/local/bin untuk paket yang diinstal oleh manajer paket saya. Semua yang saya kompilasi/instal dengan tangan masuk ke /opt . Ini adalah detail tetapi membantu menghindari sakit kepala besar ketika berhadapan dengan beberapa versi dari program yang sama.

  • xxx.desktop , dan masalah GUI secara umum, khusus untuk lingkungan desktop yang Anda gunakan. Jika itu berfungsi untuk sistem Anda, bagus. Tapi itu tidak bisa digeneralisasikan ke semua lingkungan yang tersedia di Unix.

  • /usr/local/bin memiliki keuntungan karena sudah ada di PATH Anda. Jika Anda ingin menggunakan direktori lain (seperti /opt seperti yang saya sarankan), pastikan untuk memasukkannya ke dalam PATH Anda. Jika Anda tidak tahu cara melakukannya, buka terminal dan jalankan yang berikut di terminal (bukan cara tercantik untuk melakukannya, tetapi tanpa mengetahui apa pun tentang sistem Anda, saya tidak dapat menyarankan hal lain):echo 'export PATH=$PATH:/opt' >> ~/.bashrc


Saya pikir Anda harus mengklarifikasi dengan diri Anda sendiri apa yang ingin Anda "daftarkan" dengan .

Untuk menjelaskan -- dan saya tidak mencoba untuk menjadi pintar-alecky -- "linux", tentu saja, adalah kernel, dan kernel tidak mengetahui atau tidak tertarik pada perangkat lunak userspace mana pun di sistem Anda selain init. Jadi apa yang kita bicarakan di sini?

Anda menyebutkan sejumlah distro yang berbeda. Saya terkadang membangun perangkat lunak dari sumber meskipun tersedia di repositori karena saya ingin beberapa set opsi konfigurasi yang tidak diatur di distro binary. Satu-satunya masalah yang saya miliki dengan ini adalah jika paket tersebut merupakan prasyarat untuk sesuatu yang lain, saya memang harus mendaftarkannya ke sistem pengemasan untuk menghindari menginstal paket distro secara tidak sengaja di atas yang saya buat. Pada sistem berbasis fedora/rpm, ini dilakukan dengan rpm -i --justdb <package> . Saya tidak melakukan ini pada sistem berbasis debian/apt; alih-alih, saya hanya memaksakan penginstalan sesuai kebutuhan, yang mungkin malas -- tampaknya ada cara yang lebih baik untuk melakukannya, dengan membuat paket dummy yang berpura-pura memenuhi prasyarat apa pun. Itu adalah semacam saran m0nhawk untuk benar-benar membuat paket dari sumber .tar.gz - kecuali sedikit lebih sederhana (saya akan jujur ​​dan mengatakan bahwa saya sama sekali tidak menyukai saran m0nhawk).

Tampaknya Anda memiliki beberapa masalah lain selain sistem pengemasan. Tidak jelas bagi saya apa itu, meskipun Anda menyebutkan lingkungan desktop (misalnya, Gnome). Ini heterogen, jadi tidak ada satu pun jawaban untuk pertanyaan, "bagaimana saya melakukan ini di linux" -- ini bahkan bukan pertanyaan "bagaimana saya melakukan ini di ubuntu" atau "bagaimana saya melakukan ini di gentoo" -- ini adalah pertanyaan tentang "bagaimana saya melakukan ini untuk desktop gnome" atau "bagaimana melakukan ini pada desktop XFCE", dll. Menurut saya, satu-satunya masalah adalah masalah peluncur yang Anda sebutkan, yang menurut saya ingin percaya bahwa setiap DE menyediakan cara sederhana untuk melakukan ini (tetapi tidak akan persis sama, karena berbeda). Ada juga kemungkinan masalah memiliki sesuatu yang menyediakan default untuk menangani file - saya pikir pertanyaannya adalah "bagaimana cara mendaftarkan perintah dengan browser file saya" (dan browser file di linux juga merupakan koleksi yang heterogen).

Lalu ada layanan, yang dikelola oleh sistem init (misalnya, systemd atau upstart). Jadi pertanyaan ini sebenarnya adalah serangkaian pertanyaan terkait yang berkaitan dengan, kemungkinan:

  • sistem pengemasan, misalnya apt atau yum
  • sistem init, misalnya, systemd atau pemula
  • lingkungan desktop, misalnya kde atau unity
  • peramban berkas, misalnya, nautilus atau konqueror
  • ?????

Sebagian alasannya tidak mungkin ada satu solusi terpadu yang sederhana (walaupun standar XDG mungkin menyediakan beberapa bagiannya) adalah bahwa "linux" bukanlah satu sistem operasi terpadu yang sederhana dan saya membayangkan sebagian besar penggunanya lebih suka seperti itu. Saya sering tidak menggunakan DE sama sekali, dan saya tidak pernah menggunakan browser file yang menyertainya, dll.

Sekali lagi, saya benar-benar berusaha untuk membantu dengan ini dan bukan hanya pontificate:jika ada masalah yang ingin Anda selesaikan di sini, Anda harus mempertimbangkan lebih tepat apa masalah itu dan perangkat lunak apa yang sebenarnya terlibat dengannya (selain "linux ") jika Anda ingin menyelesaikannya.


Saya pikir alasan dasar untuk masalah Anda secara keseluruhan adalah bahwa sistem Linux itu sendiri tidak mengandung "registri" seperti itu. File yang dapat dieksekusi adalah semua yang Anda butuhkan untuk menjalankan sesuatu. Jika Anda tidak ingin menentukan path lengkap ke executable maka sebagian besar shell akan mencarinya di direktori yang tercantum dalam variabel $PATH lingkungan Anda. Ini bisa menjadi sedikit lebih rumit dengan perpustakaan tertaut dan sebagainya, tetapi biasanya Anda tidak perlu mempelajari sejauh itu.

Distribusi Linux yang berbeda memiliki standar pada berbagai tata letak sistem file dan sistem manajemen paket, di situlah letak masalahnya. Redhat menggunakan rpm, Debian/Ubuntu menggunakan paket deb. Arch pergi dengan caranya sendiri juga. Dari perspektif proyek perangkat lunak, kecuali jika Anda ingin disertakan dalam distribusi, basis pengguna Anda sepenuhnya dalam satu distro, atau produk komersial yang bertujuan untuk kemudahan pemasangan untuk semua orang, mungkin itu satu-satunya poin yang mulai Anda bangun berbagai paket.

Sebenarnya, sumber tar.gz yang dibuat dengan gcc mungkin adalah definisi terbaik dari "paket Linux" yang umum. Kernel Linux dengan beberapa utilitas GNU dan GCC hampir merupakan penyebut yang sama di antara semua rasa berbeda dari sistem operasi berbasis Linux yang bisa Anda dapatkan.

Saya tidak akan terlalu jauh mengatakan "begitu sedikit" hal-hal yang tersedia sebagai paket karena sesuatu yang spesifik yang Anda cari tidak. (atau mungkin distributor memilih untuk tidak ambil pusing dengan semua masalah paket ini? Seperti Chrome dan proses pembaruannya sendiri). Ada begitu banyak paket untuk begitu banyak sistem paket yang berbeda untuk begitu banyak arsitektur untuk begitu banyak perangkat lunak gratis, itu tidak lucu.

Jika Anda telah membangun sesuatu yang tidak disertakan sebagai paket untuk distribusi linux Anda, atau mendukung opsi untuk membangun sebagai paket, cara terbaik untuk "mendaftarkan" sebagai paket sebenarnya adalah dengan membuat paket untuknya, menentukan di mana semua file harus didasarkan pada sistem paket yang Anda pilih dan instal dengan cara itu. Jadilah jiwa dan kontribusikan pekerjaan pengemasan Anda kembali ke proyek sehingga orang lain dapat memperoleh manfaat darinya.

Ada berbagai panduan web tentang membangun paket. Debian menjadi salah satunya.

Jika yang ingin Anda lakukan hanyalah menjalankan paket terkompilasi, mungkin tambahkan jalur biner ke $PATH Anda ?

Jika Anda melakukan hal lain, apa itu?


Linux
  1. Cara mengompres/dekompresi di Linux

  2. Cara Mengekstrak atau Mengunzip File tar.xz di Linux

  3. Cara menginstal file .dsc di linux

  1. Cara Menggunakan Perintah Tar di Linux

  2. Cara menginstal file tar (jhead) di mesin Mac atau Linux

  3. Bagaimana cara menginstal 'convert' pada sistem linux?

  1. Cara mengemas aplikasi Python untuk Linux

  2. Bagaimana Mengelola Kemampuan File Linux

  3. Apa itu NFS dan bagaimana cara menginstalnya di Linux