apt-get build-dep tidak dapat menemukan paket source

16

Saya sudah mengikuti panduan ini untuk menonaktifkan tempel tombol tengah mouse di Ubuntu 12.04 saya.

Bekerja seperti pesona.

Sekarang saya mencoba untuk mencapai hal yang sama pada Linux Mint 17. Ketika saya mencoba

sudo apt-get build-dep libgtk2.0-0

itu memberi saya output berikut:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

Bagi saya sepertinya apt-get entah bagaimana "menyelesaikan" 'libgtk2.0-0'ke 'gtk+2.0', tapi kemudian tidak menemukan paket bernama seperti itu.

EDIT: meskipun saya sekarang dapat mengkompilasi program (lihat jawaban saya), saya masih tidak tahu apa Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'yang dimaksud. Setiap wawasan tentang ini akan sangat dihargai, terima kasih!

panepeter
sumber
Sudahkah Anda mengaktifkan deb-srcrepositori yang relevan di /etc/apt/sources.list Anda?
steeldriver

Jawaban:

18

Seperti yang telah dicatat orang lain, pastikan bahwa untuk setiap deb …entri /etc/apt/sources.listdan /etc/apt/sources.list.d/*, Anda memiliki deb-src …entri yang cocok . Sisa baris harus identik. The debmasuk adalah paket binary (yaitu siap untuk menginstal), yang deb-srcmerupakan paket source (yaitu siap untuk mengkompilasi). Alasan mengapa kedua jenis sumber dipisahkan adalah bahwa mereka dikelola sangat berbeda: paket biner memiliki mekanisme pelacakan ketergantungan dan daftar yang saat ini diinstal, sedangkan paket sumber hanya dilacak sehingga mereka dapat diunduh dengan mudah. Perhatikan bahwa ketika membahas repositori paket, sumber kata berarti dua hal yang tidak terkait: sumber seperti di lokasi untuk mengunduh paket, dan paket sumber yang berlawanan dengan paket biner.

libgtk2.0-0adalah nama paket biner. Itu dibangun dari paket sumber yang disebut gtk+2.0. Sumber alasan dan nama paket biner tidak selalu cocok adalah bahwa membangun paket sumber dapat menghasilkan beberapa paket biner; misalnya, gtk+2.0adalah sumber untuk 14 paket seperti yang dibagi menjadi dua perpustakaan ( libgtk2.0, libgail ), corresponding packages to build programs using these libraries (... -dev ), documentation for developers (... -doc ), companion programs (libgtk2.0-bin`), dll

Anda dapat melihat nama paket sumber yang terkait dengan paket biner dengan memeriksa Source: …baris di output dpkg -s BINARY_PACKAGE_NAME(jika paket diinstal) atau apt-cache show BINARY_PACKAGE_NAME. Anda bisa daftar paket biner yang dihasilkan oleh paket sumber dengan aptitude search '?source-package(^SOURCE_PACKAGE_NAME$).

Perintah apt-get sourcemengunduh paket sumber. Jika Anda memberikan argumen yang bukan paket sumber yang dikenal, ia akan mencari dalam database paket biner yang dapat diinstal dan mencoba mengunduh paket sumber yang sesuai. Perintah apt-get build-depmengikuti pendekatan yang sama untuk menyimpulkan nama paket sumber, kemudian meminta basis data paket sumber untuk mendapatkan daftar paket biner (daftar di Build-Dep:lapangan), dan menginstal paket biner tersebut.

GUI Sumber Perangkat Lunak memiliki kotak centang "aktifkan repositori dengan kode sumber" untuk repositori resmi, pastikan dicentang. Jika Anda menambahkan repositori pihak ketiga secara manual, pastikan Anda menambahkan keduanya deb-srcdan debbaris.

Gilles 'SO- berhenti menjadi jahat'
sumber
6

Berkat @steeldriver, saya tahu apa yang harus dilakukan.

Baru saja menambahkan ling berikut ke saya /etc/apt/sources.list:

deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

repositori deb-src berisi paket source (tidak seperti paket binary, ready-to-install) yang diperlukan untuk kompilasi.

Sunting: Setelah Menambahkan ini, Anda harus menjalankan sudo apt-get update

panepeter
sumber
5

Metode CLI

sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
sudo apt-get update

Diuji pada gambar Docker Ubuntu 18.04. Setelah perubahan ini, saya bisa berhasil lakukan misalnya:

sudo apt-get build-dep hello

dan sebelum perubahan gagal dengan kesalahan:

E: You must put some 'source' URIs in your sources.list

software-properties-gtk opsi "kode sumber"

Dari GUI, Anda dapat menjalankan:

software-properties-gtk

lalu di bawah tab "Ubuntu Software" klik "Source code":

masukkan deskripsi gambar di sini

Ini telah menambahkan beberapa deb-srcbaris di bawah /etc/apt/sources.list, dan sekarang saya bisa melakukannya sudo apt-get build-dep <package>.

Diuji pada Ubuntu 16.04 hingga 18.04.

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
sumber