Shell-Script

在 Debian 或 Ubuntu 中安裝軟體包之前檢查是否存在多個依賴項

  • June 3, 2018

我已經知道我可以通過執行以下命令來檢查我的儲存庫中是否存在在 Debian 或 Ubuntu 中安裝軟體包所需的多個依賴項:

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

該命令還告訴我目前是否安裝了每個軟體包。

我的問題是如何快速檢查我目前未安裝的受支持版本的 Debian 或 Ubuntu 中是否存在多個依賴包。因為我目前沒有安裝該作業系統,所以我無法檢查依賴包是否在本地和離線存在,但我想檢查終端的預設儲存庫中是否存在所需的依賴包。

此資訊的一種可能用途是在安裝最新版本的 Ubuntu 或將現有作業系統升級到最新版本之前檢查安裝在 Ubuntu 中的應用程序是否也可以安裝在最新版本的 Ubuntu 中。

理想的工具是rmadison,它是一個簡單的 Perl 腳本,幾乎沒有依賴項(URI模組和wgetcurl),因此它幾乎可以在任何地方執行。它詢問由 Debian 和 Ubuntu 託管的 Madison 服務以確定軟體包的可用性:

rmadison gcc-7

告訴您在各種 Debian 套件中可用的 GCC 7 版本,

rmadison -u ubuntu gcc-7

對 Ubuntu 也一樣。

您可以將輸出限制為特定版本:

rmadison -u ubuntu -s bionic gcc-7

**rmadison**可以同時搜尋 Debian 和 Ubuntu 軟體包,它還搜尋 End Of Life (12.04) 和未發布 (18.10) Ubuntu 版本中的軟體包。這些都是很棒的功能,但是 rmadison 無法在我的電腦上進行部分關鍵字搜尋。有時我不記得我正在搜尋的整個包名。我只記得其中的一部分,以下說明在這種情況下也有效。否則使用 rmadison,它可以通過sudo apt-get install devscriptsUbuntu 和 Debian 中的命令安裝。

  1. 創建一個 shell 腳本來查詢是否存在名為 Open-multiple-URLs-in-Firefox.sh 的多個包。該腳本包含以下程式碼:
#!/bin/bash
while read line; do
   firefox --new-tab "https://packages.ubuntu.com/$line"
done < packages.txt
  1. 使腳本可執行。
chmod +x Open-multiple-URLs-in-Firefox.sh
  1. 創建一個名為 packages.txt 的文件,其中包含所有必需依賴包的名稱,每個包位於單獨的行中。將 packages.txt 保存在與 Open-multiple-URLs-in-Firefox.sh 相同的目錄中。
  2. 執行腳本。
./Open-multiple-URLs-in-Firefox.sh  

包含有關每個所需依賴包資訊的網頁將在 Firefox 的單獨選項卡中打開。

為了在Debianhttps://packages.ubuntu.com/中搜尋多個包,在 shell 腳本中替換為**https://packages.debian.org/search?keywords=**


當您只搜尋 1 或 2 個包時,此命令是上述 shell 腳本的更簡單替代方案。

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

引用自:https://unix.stackexchange.com/questions/440698