Kiểm tra xem có tồn tại nhiều phụ thuộc trước khi cài đặt gói trong Debian hoặc Ubuntu không


8

Tôi đã biết rằng tôi có thể kiểm tra xem có cần nhiều phụ thuộc để cài đặt gói trong Debian hoặc Ubuntu trong kho của tôi không bằng cách chạy lệnh sau:

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

Lệnh này cũng cho tôi biết nếu tôi có mỗi gói hiện được cài đặt hay không.

Câu hỏi của tôi là làm thế nào để kiểm tra nhanh xem có nhiều gói phụ thuộc tồn tại trong phiên bản Debian hoặc Ubuntu được hỗ trợ mà tôi hiện chưa cài đặt hay không. Vì hiện tại tôi chưa cài đặt HĐH nên tôi không thể kiểm tra xem các gói phụ thuộc có tồn tại cục bộ và ngoại tuyến hay không, nhưng tôi muốn kiểm tra xem các gói phụ thuộc bắt buộc có tồn tại trong kho lưu trữ mặc định từ thiết bị đầu cuối không.

Một cách sử dụng có thể cho thông tin này là kiểm tra xem một ứng dụng được cài đặt trong Ubuntu cũng có thể được cài đặt trong phiên bản Ubuntu mới nhất trước khi cài đặt phiên bản Ubuntu mới nhất hoặc nâng cấp HĐH hiện tại lên phiên bản mới nhất.

Câu trả lời:


10

Công cụ lý tưởng cho việc này là rmadison, một tập lệnh Perl đơn giản với một vài phụ thuộc ( URImô-đun và wgethoặc curl), vì vậy nó có thể chạy khá nhiều ở mọi nơi. Nó thẩm vấn các dịch vụ Madison được lưu trữ bởi Debian và Ubuntu để xác định tính khả dụng của các gói:

rmadison gcc-7

cho bạn biết phiên bản nào của GCC 7 có sẵn trong các bộ Debian khác nhau,

rmadison -u ubuntu gcc-7

điều này cũng tương tự đối với Ubuntu.

Bạn có thể giới hạn đầu ra ở một phiên bản cụ thể:

rmadison -u ubuntu -s bionic gcc-7

@karel lưu ý rằng tham số sau -ukhông phải là tên gói, mà là tên distro (hoặc có thể là repo)
GnP

Bạn nói đúng, nó bị thiếu ubuntuvà nó hoạt động trên tệp ví dụ của tôi. Trong thực tế, nó hoạt động tốt hơn so với kịch bản của tôi bởi vì nó cũng trả về kết quả cho các gói chính xác là kết thúc của bản phát hành trọn đời.
karel

3

rmadison có thể tìm kiếm cả hai gói Debian và Ubuntu cùng một lúc và nó cũng tìm kiếm các gói trong cả hai phiên bản Ubuntu End Of Life (12.04) và chưa được phát hành (18.10). Đây là những tính năng tuyệt vời, nhưng rmadison không thể thực hiện tìm kiếm một phần từ khóa trên máy tính của tôi. Đôi khi tôi không thể nhớ toàn bộ tên gói mà tôi đang tìm kiếm. Tôi chỉ có thể nhớ một phần của nó, và các hướng dẫn sau đây cũng hoạt động trong tình huống này. Mặt khác, sử dụng rmadison có thể được cài đặt bằng lệnhsudo apt-get install devscriptstrong Ubuntu và Debian.

  1. Tạo một tập lệnh shell để truy vấn nếu có nhiều gói tồn tại có tên Open-multipl-URLs-in-Firefox.sh. Kịch bản chứa mã sau đây:

    #!/bin/bash
    while read line; do
        firefox --new-tab "https://packages.ubuntu.com/$line"
    done < packages.txt
    
  2. Làm cho kịch bản thực thi.

    chmod +x Open-multiple-URLs-in-Firefox.sh
  3. Tạo một tệp có tên là gói.txt chứa tên của tất cả các gói phụ thuộc bắt buộc, mỗi gói trên một dòng riêng biệt. Lưu gói.txt trong cùng thư mục với Open-mult Môn -URLs-in-Firefox.sh.

  4. Chạy kịch bản.

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

Trang web có thông tin về từng gói phụ thuộc bắt buộc sẽ mở trong một tab riêng trong Firefox.

Để tìm kiếm nhiều gói trong Debian thay thế https://packages.ubuntu.com/trong tập lệnh shell bằnghttps://packages.debian.org/search?keywords=


Lệnh này đơn giản hơn thay thế cho tập lệnh shell ở trên để sử dụng khi bạn chỉ tìm kiếm 1 hoặc 2 gói.

firefox --new-tab https://packages.ubuntu.com/first-package https://packages.ubuntu.com/next-package https://packages.ubuntu.com/last-package
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.