在 arch 中列出特定 repo 的所有已安装包

问题描述

假设我的 foo 配置文件中列出了存储库 pacman.conf

[foo]
Include = /etc/pacman.d/mirrolist-custom

我只想从 foo 存储库中列出我的系统已安装的软件包。

解决方法

您可以列出已安装的软件包、列出 repo 软件包并进行比较。输出将是您从 repo 安装的软件包。

pacman -Qq | sort > tmp_installed.txt
pacman -Slq foo | sort > tmp_foo.txt
comm -12 tmp_installed.txt tmp_foo.txt

如果你想重复做一个脚本。这里是一个名为 list_repo.sh

的脚本示例
#!/bin/bash
# List installed packages from repo
if [ "$#" -lt "1" ] || [ "$#" -gt "2" ]; then
    echo "Invalid number of arguments"
    echo "Usage: $0 <repo>"
    exit
fi

pacman -Qq | sort > tmp_installed.txt
pacman -Slq $1 | sort > tmp_repo.txt

comm -12 tmp_installed.txt tmp_repo.txt
rm tmp_installed.txt
rm tmp_repo.txt

运行它:

./list_repo.sh foo

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...