Periksa apakah ada beberapa dependensi sebelum menginstal paket di Debian atau Ubuntu

8

Saya sudah tahu bahwa saya dapat memeriksa apakah ada beberapa dependensi yang diperlukan untuk menginstal paket di Debian atau Ubuntu di repositori saya dengan menjalankan perintah berikut:

apt policy first-package second-package ... last-package  

Perintah ini juga memberi tahu saya apakah saya sudah menginstal setiap paket atau tidak.

Pertanyaan saya adalah bagaimana dengan cepat memeriksa apakah ada beberapa paket dependensi dalam versi Debian atau Ubuntu yang didukung yang saat ini belum saya instal. Karena saya tidak memiliki OS yang saat ini diinstal, saya tidak dapat memeriksa apakah paket dependensi ada secara lokal dan offline, tetapi saya ingin memeriksa apakah paket dependensi yang diperlukan ada di repositori default dari terminal.

Salah satu kemungkinan penggunaan informasi ini adalah untuk memeriksa apakah aplikasi yang diinstal di Ubuntu juga dapat diinstal dalam versi terbaru dari Ubuntu sebelum menginstal versi terbaru dari Ubuntu atau memutakhirkan OS yang ada ke versi terbaru.

karel
sumber

Jawaban:

10

Alat yang ideal untuk ini adalah rmadison, yang merupakan skrip Perl sederhana dengan beberapa dependensi ( URImodul dan wgetatau curl), sehingga dapat berjalan cukup banyak di mana-mana. Ini menginterogasi layanan Madison yang diselenggarakan oleh Debian dan Ubuntu untuk menentukan ketersediaan paket:

rmadison gcc-7

memberi tahu Anda versi GCC 7 yang tersedia di berbagai suite Debian,

rmadison -u ubuntu gcc-7

melakukan hal yang sama untuk Ubuntu.

Anda dapat membatasi output ke versi tertentu:

rmadison -u ubuntu -s bionic gcc-7
Stephen Kitt
sumber
@karel perhatikan bahwa parameter setelah -ubukan nama paket, tetapi nama distro (atau mungkin repo)
GnP
Anda benar, itu yang hilang ubuntudan berfungsi pada file contoh saya. Bahkan ia bekerja lebih baik daripada skrip saya karena ia juga mengembalikan hasil untuk paket-paket yang tepat yang merupakan akhir dari kehidupan.
karel
3

rmadison dapat mencari paket Debian dan Ubuntu secara bersamaan, dan juga mencari paket di End Of Life (12.04) dan versi Ubuntu yang belum dirilis (18.10). Ini adalah fitur hebat, tetapi rmadison tidak dapat melakukan pencarian kata kunci parsial di komputer saya. Terkadang saya tidak dapat mengingat seluruh nama paket yang saya cari. Saya hanya dapat mengingat sebagian darinya, dan instruksi berikut ini juga berfungsi dalam situasi ini. Kalau tidak gunakan rmadison yang dapat diinstal dengan perintahsudo apt-get install devscriptsdi Ubuntu dan Debian.

  1. Buat skrip shell untuk meminta jika beberapa paket ada bernama Open-multiple-URLs-in-Firefox.sh. Script berisi kode berikut:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
  2. Jadikan skrip dapat dieksekusi.

    chmod +x Open-multiple-URLs-in-Firefox.sh
  3. Buat file dengan nama paket.txt yang berisi nama-nama semua paket dependensi yang diperlukan, masing-masing paket pada baris terpisah. Simpan paket.txt dalam direktori yang sama dengan Open-multiple-URLs-in-Firefox.sh.

  4. Jalankan skrip.

    ./Open-multiple-URLs-in-Firefox.sh  

Halaman web yang memiliki informasi tentang setiap paket ketergantungan yang diperlukan akan terbuka di tab terpisah di Firefox.

Untuk mencari beberapa paket di Debian ganti https://packages.ubuntu.com/dengan skrip shell denganhttps://packages.debian.org/search?keywords=


Perintah ini adalah alternatif yang lebih sederhana daripada skrip shell di atas untuk digunakan ketika Anda hanya mencari 1 atau 2 paket.

firefox --new-tab https://packages.ubuntu.com/first-package https://packages.ubuntu.com/next-package https://packages.ubuntu.com/last-package
karel
sumber