查找所有用户安装的软件包

查找所有用户安装的软件包

有没有办法获取 Ubuntu 系统上所有用户安装的软件包的列表,即在默认安装的软件包之上安装的软件包?

(目的是获得一个完整的列表,可用于在干净的 Ubuntu 安装上安装相同的软件包)

答案1

看看这些文件,

  1. ' /var/log/installer/initial-status.gz' – 你的主要安装
    • 这个文件日期就是你的安装日期(我认为)
    • ' /var/log/dpkg.log' 更新时间线(这就是你想要的)
    • ' /var/log/apt/term.log' —apt系统上更新的内容
    • '/var/cache/apt/archives/'将包含deb下载的安装包

更新:使用以下两个步骤获取新安装的精确列表:

  1. 执行:grep -w install /var/log/dpkg.log > full-list.log
  2. 查看/var/log/installer/initial-status.gz时间戳以外的行

由于您想在另一个系统上使用这些软件包进行全新安装,您甚至可以将“deb”文件从“cache/apt/archives”路径复制到新安装的路径,并一次性安装它们(无需再次下载)。

答案2

只是为了好玩,我编写了一个单行代码(这里为了清晰起见分开了)来计算包手动已安装,但不包括最初安装的软件包和任何自动安装的软件包:

comm -13 \
  <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort) \
  <(comm -23 \
    <(dpkg-query -W -f='${Package}\n' | sed 1d | sort) \
    <(apt-mark showauto | sort) \
  )

这在bash和 中都有效zsh

答案3

根据以上信息,我编写了一个简短的 Python 脚本来列出手动安装的软件包。请参阅此链接

尽管我不承担任何责任,但请随意使用。不过,我们欢迎您提供反馈和建议。

答案4

假设您有一致的历史记录并使用 aptitude:

history | grep -e "^..... aptitude install"

只会列出你用 aptitude install 安装的软件包...呃

相关内容