Saya berasumsi bahwa semua aplikasi yang diinstal apt-get
adalah open source; tetapi bagi mereka yang tersedia dengan cara itu, di mana saya bisa mendapatkan kode sumber untuk aplikasi ini serta memperbaruinya?
Saya memiliki beberapa aplikasi yang saya gunakan secara teratur yang tidak lagi dikembangkan secara aktif dan saya ingin menambahkan fitur. Di mana saya akan pergi untuk mendapatkan hak untuk memperbarui aplikasi ini?
Dalam hal ini secara khusus, saya merujuk pada paket hellanzb
apt-get
tidak mendukung program sumber tertutup juga, jadi asumsi awal Anda salah.Jawaban:
Gunakan perintah
apt-get source <package>
(jangan gunakan sudo dengannya) untuk mengunduh sumber paket.Dari
man apt-get
:Untuk membangun sebuah paket dari sumber, instal terlebih dahulu dependensi build:
Kemudian gunakan
dpkg-buildpackage
untuk membuat.deb
file. Dari Lembar Referensi Cepat APT dan Dpkg :Di terminal,
cd
ke direktori yang berisi sumber paket (misalnya~/code/hellanzb-0.13
) dan jalankan perintah berikut:Jika build berhasil, akan ada
.deb
file yang terletak didirektori induk (mis
~/code/hellanzb_0.13-6.1_all.deb
.).sumber
.deb
paket dari kode sumber. Adapun untuk memasukkan paket modifikasi Anda ke dalam repositori, Anda harus berbicara dengan MOTU tentang hal itu.sudo apt-get build-dep <package>
menginstal dependensi sebagai binari? Jika demikian, ini bukan build lengkap dari sumber. Bagaimana caranya membuat build-dep menginstal dependensi dari sumber?Secara umum, Anda bisa mendapatkan sumber paket yang diinstal dengan mengikuti prosedur ini:
Aktifkan repositori sumber. Buka dasbor (tombol kiri atas) dan cari
sources
. Itu akan memunculkanSoftware & Updates
program, jalankan itu dan pastikan Anda memiliki opsi "Kode sumber" yang dipilih:Buka terminal dan jalankan perintah ini:
Itu akan mengunduh sumber vlc ke direktori Anda saat ini dan Anda dapat melihatnya sesuka Anda.
Tentu saja, dalam kasus
vlc
, Anda juga dapat mengunduhnya langsung dari situs web videolan.org: https://www.videolan.org/vlc/download-sources.htmlsumber
Anda dapat menggunakan
apt-get source --compile
secara langsung:Bekerja untukku. Deb. Angin di direktori Anda menjalankan perintah dari.
sumber
sudo dpkg -i <package>.deb
Untuk mendapatkan informasi lebih lanjut tentang paket termasuk URL hulu dan kontak proyek / program, Anda dapat melihat file hak cipta (dirujuk dari packages.debian.org ).
Ketika paket disertakan dan diinstal pada sistem Anda, Anda juga dapat membaca file hak cipta langsung di
/usr/share/doc/$package_or_program_name/copyright
.Lihat cara mengunduh kode sumber paket Debian? .
sumber
Contoh minimal dengan
hello
paketSemua ini dan lebih banyak dijelaskan di: https://www.debian.org/doc/manuals/maint-guide/build.en.html
Pertama mari kita dapatkan paket sampel untuk memodifikasi sumber untuk:
output:
Sekarang mari kita hack itu. Dapatkan sumbernya:
dan buka:
dan ubah pesan menjadi:
Kemudian lakukan hal yang sama pada tes jika tes menjengkelkan akan mulai gagal:
Kemudian bangun kembali dengan:
Menjelang akhir output, dikatakan:
jadi itu menciptakan deb di direktori induk. Beraninya. Jadi akhirnya kami menginstal dan menguji paket yang dimodifikasi:
dan begitulah, itu menampilkan pesan baru:
Diuji pada Ubuntu 18.04.
bzr
Jawaban lamaTODO: ini berhenti bekerja pada Ubuntu 16.04 Xenial, gagal dengan:
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
.bzr branch lp:ubuntu/wily/hello
berfungsi danbzr branch lp:ubuntu/xenial/hello
gagal lagi. Untuk beberapa alasan https://code.launchpad.net/ubuntu/+source/hello tidak menunjukkan Xenial: https://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /HaloSeperti disebutkan di https://askubuntu.com/a/81889/52975 ada juga pendekatan khusus Ubuntu dengan
bzr
.Dapatkan versi terbaru:
Versi spesifik:
Anda juga dapat menggunakan
pull-lp-source
:Maka Anda akan dapat mengeditnya:
Bangun kembali:
Dan instal:
The Ubuntu panduan kemasan merupakan sumber informasi yang baik.
sumber
bzr branch lp:ubuntu/hello bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
bzr branch lp:ubuntu/xenial/lightdm bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/xenial/lightdm/".
Panduan pengemasan Ubuntu , khususnya 4.2. Mendapatkan sumber mengatakan:bzr branch ubuntu:lightdm lightdm.quickswitch bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/lightdm/".
Kacau sekali. :-(pull-lp-source
sebagai gantinya, tapi kemudian kami tidak mendapatkan repositori bzr.bzr bd -- -b -us -uc
mengatakanbzr: ERROR: Not a branch: "/org/gourichon/localdata/SG/projects/sysadmin/sysadmin_ergozel/2016/2016-08-15/blouarp/lightdm-1.18.3/".
: - / Terima kasih atas petunjuk apa pun.bzr lp:ubuntu/wily/hello
tetapi karena alasan tertentu tidak adaxenial
versi? Dan tidak ada yang ditampilkan di: code.launchpad.net/ubuntu/+source/hello Go figure.