Mengkompilasi sumber ke dalam paket DEB

34

Saya selalu memiliki masalah dalam menginstal dan menghapus perangkat lunak yang dikompilasi, jadi saya telah memutuskan saya ingin membangun perangkat lunak dari sumber ke dalam paket deb. Untuk instalasi / penghapusan lebih mudah.

Saya ingin mengetahui cara mudah dan singkat untuk membangun sumber menjadi paket .deb, sebagai pengguna akhir .

Saya telah mencoba:

  • ubucompilator , yang tidak berhasil untuk saya
  • Ini cara memandu, tapi saya menemukannya terlalu lama
Ashu
sumber
1
Ubucompilator adalah proyek yang menarik, dan saya memuji upaya mereka hingga saat ini. Namun, seperti yang Anda temukan, itu hanya menyediakan GUI front-end untuk empat atau lima perintah tingkat rendah. Dan, TIDAK, Anda tidak dapat menggunakannya untuk dengan mudah membuat paket '.deb' yang tepat.
david6

Jawaban:

47

checkinstall melakukan apa yang ingin Anda capai: ia akan memantau file mana yang diinstal dan menempatkannya ke dalam paket .deb, yang kemudian dapat diinstal dan dihapus

Instal dengan

apt-get install checkinstall

kemudian Anda melakukan instalasi normal dari prosedur sumber, menggantikan 'sudo make install' dengan 'sudo checkinstall':

  ./configure
  make
  sudo checkinstall

Referensi: https://help.ubuntu.com/community/CheckInstall

Floyd
sumber
9

Kami memiliki Panduan Pengemasan yang sangat baik yang memiliki bagian tentang topik paket baru .

tumbleweed
sumber
1
Saya merekomendasikan tautan ini, karena memuat semua informasi yang dibutuhkan seseorang. Juga, jika ada pertanyaan spesifik, saya mungkin dapat membantu mereka, tetapi tidak untuk menjelaskan seluruh prosedur pembuatan paket debian dari sumber.
Thomas Ward
@pumkin: diperbarui.
tumbleweed
6

Saya telah menggunakan make checkinstallperintah pada beberapa kesempatan untuk membuat .debpaket pada satu mesin untuk diinstal pada server saya yang lain. Ini adalah cara cepat untuk menginstal versi Beta. Ini bekerja, tetapi harus digunakan dengan hati-hati. Ada jebakan bagi pengguna yang tidak mengerti banyak fungsi dari .debpaket.

Saya memiliki dua puluh beberapa server yang menggunakan aplikasi rumah yang sama. Menambahkan dukungan build dan kompiler ke setiap host tidak terlalu sulit.

Memasukkan perintah untuk mengunduh dan mengompilasi versi baru dua puluh kali itu menghabiskan waktu. Alternatifnya adalah mengunggah skrip untuk melakukan tugas dan kemudian menjalankan skrip. Tetapi seringkali lebih mudah untuk memperbarui aplikasi menggunakan .debfile yang dibuat dengan checkinstall.

C Schuman
sumber
0

Tugas mengemas beberapa bagian acak dari kode perangkat lunak menjadi .deb adalah tugas yang cukup rumit jika perangkat lunak tersebut belum datang dalam bentuk itu, terutama dibandingkan dengan hanya membuat, melakukan instalasi. Jika Anda ingin segala sesuatunya menjadi lebih sederhana, saya pikir Anda bergerak ke arah yang salah.

Saya tidak mengatakan Anda tidak dapat melakukannya - Pengembang Debian sering melakukannya. Tapi sepertinya itu bukan cara paling sederhana untuk melakukan apa yang Anda inginkan.

Mungkin Anda harus lebih berkonsentrasi untuk mempelajari cara menyusun dan menginstal perangkat lunak dari sumber "berfungsi". Yang menguntungkan Anda adalah kenyataan bahwa semua yang Anda instal sendiri harus berakhir di / usr / local

thomasrutter
sumber
terima kasih untuk sugestion, tetapi saya sudah tahu tentang kompilasi software, saya hav beberapa dari mereka dikompilasi pada sistem saya. Satu-satunya hal yang sulit bagi saya adalah meningkatkan atau menghapusnya. Jadi saya pikir file deb akan lebih berguna
Ashu
Alasan paket deb dapat dengan mudah meningkatkan atau menghapus sendiri adalah bahwa seseorang memiliki skrip yang ditulis dengan susah payah yang melakukan ini, untuk setiap paket. Selain itu, mereka harus menambahkan banyak metadata deskriptif lainnya yang dpkg dapat digunakan untuk menentukan file apa. Anda akan memiliki pekerjaan Anda cocok untuk Anda.
thomasrutter
1
Sebenarnya, ikuti saja jawaban Floyd. Tampaknya solusi yang jauh lebih baik secara keseluruhan, jika benar-benar melakukan apa yang dikatakannya!
thomasrutter
Ya. Solusi Floyd luar biasa. Apalagi sekarang, ini sangat dewasa. Sekarang saya tidak perlu membangun dari sumber di banyak server. :)
Jack_Hu