"Tetapi disebut oleh paket lain." - Menemukan paket itu

24

Sudah lazim bagi pengguna Ubuntu (atau distro lain dengan manajemen paket yang tepat) untuk menghadapi kesalahan:

user@box ~ $ sudo apt-get install x
[sudo] password for user: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package x is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'x' has no installation candidate

Ada beberapa pertanyaan yang diajukan mengenai ini di berbagai situs StackExchange, misalnya openvpn pada AskUbuntu, tetapi ini umumnya tentang cara mendapatkan paket tertentu meskipun kesalahan.

Saya tidak menemukan paket yang tidak ditemukan secara sederhana (meskipun tidak selalu mudah) dengan menentukan apakah masih didistribusikan, dan di mana repositori jika demikian, dan memastikan bahwa repositori berada di apt.sources, atau yang terburuk datang ke yang terburuk mengunduh sebuah .deb atau sumber untuk dikompilasi.

Jadi pertanyaan saya lebih umum, dan walaupun saya menduga itu memiliki jawaban yang agak sederhana dan karena itu tidak menarik, saya tidak dapat memikirkan bagaimana cara menemukannya dengan metode mesin pencari konvensional, jadi saya beralih ke AskUbuntu: Apakah ada perintah atau opsi yang saya bisa gunakan untuk menentukan paket apa / paket mana yang merujuk paket yang hilang?

Arlo James Barnes
sumber

Jawaban:

13

Anda dapat mencari paket dengan apt-cache:

apt-cache search x

Ini akan menampilkan semua paket yang dengan cara lain membuat referensi ke x.

Henrique Ferreira
sumber
2
Yah, itu terdengar masuk akal ... kecuali itu tidak bekerja untuk saya. apt-get install libtinfo6laporan tidak tersedia tetapi disebut oleh paket lain, tetapi apt-cache search libtinfo6tidak membuahkan hasil. Apakah ada cara lain untuk melakukan hal serupa?
Erhannis
@Erhannis Apakah 'terminfo' membawa sesuatu? Saya pikir kadang-kadang kesalahan ini muncul ketika sebuah paket dengan sembrono diganti namanya.
Arlo James Barnes
Saya ... tidak yakin. Saya memutakhirkan ke versi Debian berikutnya, dan paket itu tampaknya tidak lagi memberikan kesalahan itu. Saya akan mencoba terminfolain kali hal itu terjadi; itu terjadi sebelumnya dan kemungkinan akan terjadi lagi.
Erhannis
23

Terkadang ini terjadi karena APT tidak tahu apa-apa tentang apa yang Anda bicarakan, tetapi itu bisa diselesaikan dengan menjalankan:

sudo apt-get update

Setelah menjalankan ini, biasanya kesalahannya hilang karena aptdan apt-gettahu bagaimana melakukan apa yang saya minta sekarang.

Wayne Workman
sumber
4
Anda mungkin bermaksud apt-get updatediikuti oleh apt-get upgrade -ykarena -ymelewati konfirmasi pengguna. Tidak masuk akal menggunakannya dengan apt-get update. Meski begitu, ini sama sekali tidak menjawab pertanyaan.
4
@CelticWarrior: Saya setuju dengan jawaban ini pada prinsipnya karena memperbarui informasi repositori paket dapat mengatasi masalah ini jika seseorang mencoba menginstal paket dari PPA yang baru ditambahkan dan lupa untuk menjalankannya apt-get update.
David Foerster
7
@ user589808 Saya tidak berpikir itu saran yang sangat bagus sama sekali. Pembaruan apt-get tidak diperlukan, dan membabi buta terhadap semua hal dapat merusak lebih banyak hal daripada perbaikannya. jadi wayne benar dalam sintaks hi.
Gila keren
1
apt-get updatemenjawab pertanyaan AB (paket ada di repo tetapi apt-get installdan apt-cachetidak tahu tentang hal itu.)
dcorking
1
Untuk kedatangan selanjutnya, komentar di atas membahas versi yang lebih lama dari jawaban ini. Jawaban saat ini hanya sudo apt-get updatebebas dari kontroversi dan merupakan solusi yang tepat untuk saya.
Daryn