Bagaimana mengelola perangkat lunak yang diinstal dari sumber?

14

Dari waktu ke waktu, kami mungkin harus menginstal sesuatu dari sumber karena berbagai alasan. Meskipun cukup standar cara menginstal perangkat lunak yang diberikan dependensi yang sesuai, tidak jelas bagi saya bagaimana mengelola instalasi tersebut untuk kenyamanan di masa depan.

Lebih spesifik:

  1. Apa yang dapat kita lakukan untuk memastikan penghapusan instalasi yang mudah dan bersih (termasuk dependensi yang diinstal sebelum dan hanya untuk perangkat lunak yang diinstal dari sumber)?

  2. Apa yang dapat kita lakukan untuk memastikan pemutakhiran yang mudah dan bersih dari perangkat lunak yang sama, yang kemungkinan akan diinstal dari sumber lagi?

  3. Apa yang bisa kita lakukan untuk meminimalkan potensi konflik jika ada paket default (diinstal menggunakan apt-get) serta versi (lebih baru) dari paket (diinstal dari sumber)?

skyork
sumber

Jawaban:

8

Menggunakan checkinstall make installakan membuat paket sementara dan menginstalnya. Ini berarti itu direkam dalam manajer paket dan dapat dihapus.

pengguna54114
sumber
7

Hal terbaik untuk dilakukan adalah membuat sendiri paket Debian dari versi yang lebih baru. dpkgdan aptalat melakukan ketiga hal yang Anda sebutkan dan dimaksudkan untuk tujuan itu. Gunakan mereka alih-alih menciptakan kembali roda. Ada banyak panduan tentang kemasan yang tersedia. Jika perangkat lunak sudah ada di repositori, Anda mungkin bisa mendapatkan paket sumber ( apt-get src) yang dapat Anda gunakan untuk mempelajari dan memulai paket Anda sendiri.

Jawaban untuk /ubuntu//a/485230/158442 ini mungkin berguna sebagai pedoman umum.

Meskipun checkinstallbagus untuk solusi cepat dan kotor, dalam jangka panjang Anda harus menggunakan kemasan yang tepat.

muru
sumber
terima kasih atas sarannya. Ketika Anda mengatakan 'perangkat lunak sudah ada di repositori', saya berasumsi bahwa yang Anda maksud adalah repositori resmi yang dikelola oleh Ubuntu. Jika demikian, dalam banyak kasus repositori ini tidak menyediakan versi yang lebih baru terutama pada rilis Ubuntu yang lebih lama. Jadi apt-get srcmungkin tidak bisa membantu dalam kasus seperti itu.
skyork
@skyork mungkin tidak. Tetapi Anda dapat menggunakan paket versi lama untuk belajar. Mungkin ada beberapa penyesuaian yang dilakukan oleh pembuat paket, beberapa skrip pemeliharaan khusus. Tidak ada alasan mengapa Anda harus mengabaikan semua itu dan mulai dari awal. Menemukan kembali roda tampaknya menjadi tema di sini.
muru
4

Pertama-tama, banyak tergantung pada bagaimana Anda mengelola kode sumber Anda. Saya membuat direktori seperti ~/sourcesdan meletakkan setiap program di subdirektori itu, sementara yang lain akan membuat direktori baru untuk setiap program.

Demikian pula beberapa orang seperti saya, membuat sub-direktori baru untuk setiap versi baru, dan menghapus versi yang lebih lama hanya ketika dipastikan bahwa tidak ada bug signifikan dalam versi baru yang akan menghentikan pekerjaan saya.

Tidak ada satu cara untuk melakukan ini, tetapi cara apa pun yang Anda pilih, pilih cara yang paling mudah untuk Anda kelola .

  1. Bersihkan Penghapusan Instalasi

    • Saya akan menyarankan membuat rem_dep.shskrip yang akan terlihat seperti ini.

      #! /bin/bash
      sudo apt-get remove dep1 dep2 ... depn
      

      di mana dep1, dep2, depndependensi.

  2. Pembersihan bersih & mudah

    • jika Anda mendapatkan kode sumber dari sistem versi otomatis seperti gitatau bazaaratau jika tautannya dapat diprediksi, Anda dapat membuat skrip shell yang nantinya

      #1 make a backup of earlier version
      #2 get new source
      #3 configure, build/make the source
      #5 if make went correctly, remove earlier version.
      #6 make install new version, update dependencies if required.
      
    • Dalam kasus lain juga, Anda dapat membuat skrip semacam itu dengan pekerjaan manual sampai batas tertentu.

  3. Manajemen konflik

    • Cara terbaik adalah dengan menggunakan --prefixopsi saat menginstal perangkat lunak dan ada dependensi.
    • Hal penting lainnya adalah menjaga agar sistem Anda diperbarui agar meminimalkan konflik.

CATATAN: Jika Anda menemukan diri Anda menyusun lebih banyak perangkat lunak daripada yang seharusnya (atur max_limitsendiri, seperti 5 atau 10 atau 100) yang terbaik adalah Anda meninggalkan Ubuntu dan pindah ke Arch Linux.

Pengguna Terdaftar
sumber
3

Membangun dependensi:

  • AFAIK mereka harus direkam secara manual. Anda dapat membuat file seperti README untuk menyimpan daftar dependensi yang diinstal secara manual.

  • Jika perangkat lunak itu sudah memiliki biner dalam repositori Ubuntu atau PPA. Pelacakan dependensi saat instalasi akan lebih mudah:

    sudo apt-get build-dep target_package
    

Copot pemasangan:

Simpan folder sumber yang sudah dikonfigurasi & diinstal. Lebih baik jika Anda mengumpulkan semua sumber dalam folder tertentu dengan file dependensi yang diinstal.

Bersihkan pemutakhiran & isolasi file yang diinstal:

Instal secara spesifik --prefix(lebih disukai --prefix=/opt/software_name-version/).

Ini akan menyelesaikan banyak masalah: versi bersamaan dengan yang berasal dari repositori; upgrade bersih; lebih mudah untuk uninstall kotor dalam sumber kasus telah dihapus.

Lebih canggih atau cara terbaik, seperti jawaban @muru, Bangun paket Debian (Untuk paket yang tersedia di repositori Ubuntu / PPA)

user.dz
sumber