GNU/Linux >> Belajar Linux >  >> Linux

Apt-get Build-dep Tidak Dapat Menemukan Paket Sumber?

Saya telah 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 di Linux Mint 17 saya. Ketika saya mencoba untuk

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' , tetapi kemudian tidak menemukan paket yang 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' seharusnya berarti. Setiap wawasan tentang ini akan dihargai, terima kasih!

Jawaban yang Diterima:

Seperti yang telah dicatat orang lain, pastikan bahwa untuk setiap deb … entri di /etc/apt/sources.list dan /etc/apt/sources.list.d/* , Anda memiliki deb-src … . yang cocok masuk. Baris lainnya harus sama.

deb entri adalah untuk paket biner (yaitu siap untuk menginstal), deb-src adalah untuk paket sumber (yaitu siap untuk dikompilasi). Alasan mengapa kedua jenis paket tersebut dipisahkan adalah karena mereka dikelola dengan sangat berbeda:paket biner memiliki mekanisme pelacakan ketergantungan dan daftar yang saat ini diinstal, sedangkan paket sumber hanya dilacak sehingga dapat diunduh dengan nyaman.
Perhatikan bahwa ketika membahas repositori paket, kata sumber berarti dua hal yang tidak berhubungan:sumber sebagai lokasi untuk mengunduh paket, dan paket sumber sebagai lawan dari paket biner.

libgtk2.0-0 adalah nama paket biner. Itu dibangun dari paket sumber yang disebut gtk+2.0 . Alasan mengapa nama paket sumber dan biner tidak selalu cocok adalah karena membangun paket sumber dapat menghasilkan beberapa paket biner; misalnya, gtk+2.0 adalah sumber untuk 14 paket karena dipecah menjadi dua pustaka (libgtk2.0 , libgail ), paket yang sesuai untuk membangun program menggunakan pustaka ini (…-dev ), dokumentasi untuk pengembang (…-doc ), program pendamping (libgtk2.0-bin ), dll.

Anda dapat melihat nama paket sumber yang sesuai dengan paket biner dengan memeriksa Source: … baris dalam output dpkg -s BINARY_PACKAGE_NAME (jika paket sudah terpasang) atau apt-cache show BINARY_PACKAGE_NAME .

Anda dapat membuat daftar paket biner yang dihasilkan oleh paket sumber dengan aptitude search '?source-package(^SOURCE_PACKAGE_NAME$) .

Perintah apt-get source mengunduh paket sumber. Jika Anda memberikan argumen yang bukan merupakan paket sumber yang diketahui, ia akan mencarinya di database paket biner yang dapat diinstal dan mencoba mengunduh paket sumber yang sesuai.

Terkait:Tidak dapat mensimulasikan Ctrl+Shift+Fn+F10 Tekan tombol ?

Perintah apt-get build-dep mengikuti pendekatan yang sama untuk menyimpulkan nama paket sumber, kemudian menanyakan database paket sumber untuk mendapatkan daftar paket biner (daftar di Build-Dep: field), 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-src dan deb garis.


Linux
  1. Cara Menemukan Versi Paket Di Linux

  2. Bagaimana mengemas aplikasi open source sebagai RPM

  3. Menggunakan Sudo Apt-get Install, Mengapa Tidak Ada Kode Sumber?

  1. tidak dapat menginstal paket libc6

  2. Docker - Tidak dapat menemukan paket docker-engine

  3. Ubuntu E:Tidak dapat menemukan paket mysql

  1. Cara Membangun Paket Dari Sumber Menggunakan CheckInstall

  2. pygrub:Tidak dapat menemukan partisi yang berisi kernel

  3. E:Tidak dapat menemukan paket python-pip di Ubuntu 18.04