列出指定倉庫的包
從參數上看,命令dnf repoquery --installed --repo=everything貌似能實現這個功能,但實際輸出為空,因此有了如下腳本:
#!/bin/bash
# list_pkgs_from_repo.sh
# 檢查是否提供了倉庫參數
if [ -z "$1" ]; then
echo "錯誤:請提供要查詢的倉庫名稱作為參數。"
echo "用法:$0 <倉庫名稱>"
echo "示例:$0 update 或 $0 @commandline"
exit 1
fi
# 規范化倉庫名稱(處理帶@和不帶@的情況)
repo_name="$1"
if [[ "$repo_name" != @* && ("$repo_name" = "System" || "$repo_name" = "commandline") ]]; then
repo_name="@$repo_name"
fi
echo "正在查找從 '$repo_name' 倉庫安裝的包..."
# 遍歷所有已安裝的包
rpm -qa | while read -r pkg; do
# 使用dnf查詢包信息,提取倉庫信息
repo_info=$(yum info "$pkg" 2>/dev/null | grep -oP 'From repo\s+:\s+\K.*')
# 檢查倉庫信息是否匹配(支持部分匹配,如"update"匹配"updates")
if [[ -n "$repo_info" && "$repo_info" == *"$repo_name"* ]]; then
echo "$pkg"
fi
done
作者:wanghongwei
版權聲明:本作品遵循<CC BY-NC-ND 4.0>版權協議,商業轉載請聯系作者獲得授權,非商業轉載請附上原文出處鏈接及本聲明。

浙公網安備 33010602011771號