很高兴看到我使用 apt install 手动安装了哪些软件包。
因为我可以删除不再需要的软件包。
但是我找不到适用于apt版本1.8.2的在debian buster上运行的命令。
也许有人可以提供一个显示所有手动软件包的命令,而无需依赖它们。
我尝试了这些帖子中的命令:
答案 0 :(得分:1)
您可以通过grepping /var/log/apt/history.log*获得apt / apt-get已安装软件包的列表*
grep_apt_history.bash:
#!/usr/bin/env bash
# current apt history
grep "apt.* install" /var/log/apt/history.log | grep -v broken \
| grep -Po 'install\s\K.*' | sort -u
# zipped apt history
gzip -cd $(find /var/log/apt -name "history.log.[0-9]*.gz") \
| grep "apt.* install" | grep -v broken | grep -Po 'install\s\K.*' | sort -u
parse_apt_install.py:
#!/usr/bin/env python3
import sys
installed_packages = []
avoid = ['--no-install-recommends', '--yes', '-y', '--reinstall']
for line in sys.stdin:
if ' ' in line:
packages = line.split(' ')
for package in packages:
if not package in avoid:
installed_packages.append(package.strip('\n'))
else:
stripped = line.strip('\n')
if not './' in stripped:
installed_packages.append(stripped)
for package in sorted(installed_packages):
print(package)
python脚本将删除本地'./'安装的软件包
用法:
./grep_apt_history.bash | ./parse_apt_install.py
答案 1 :(得分:0)
此Bash命令将打印所有手动安装的软件包减去来自Debian安装的软件包(换句话说,您用apt install
安装的软件包):
sudo grep -oP "Unpacking \K[^: ]+" /var/log/installer/syslog \
| sort -u | comm -13 /dev/stdin <(apt-mark showmanual | sort)
在Debian 10(毁灭性)中测试。需要sudo
来搜索/var/log/installer/syslog
。如果您不想每次使用sudo
,也可以将此安装程序软件包列表保存在其他位置。