我有一台装有我需要的应用程序的机器,我想在一个新的 Ubuntu 机器上安装它。
是否有一个脚本可以列出所有已安装的应用程序,以便我可以在框之间进行区分并添加缺少的项目?
提前致谢,克里斯
Ham*_*ner 18
除了 pjz 提到的 dpkg 技巧外,您可能还想查看etckeeper(教程)——一个将您的 /etc/* 置于版本控制之下的应用程序,可以更轻松地找到您所做的任何更改并将它们复制到其他服务器。
此外,对于比 pjz 方法生成的列表更短的列表,您可以使用
$ deborphan -a --no-show-section > /tmp/mypackagelist
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个软件包列表,这些软件包将安装您需要的所有其他软件包作为依赖项。如果您真的想查看列表,这可能很有用。(dpkg --get-selections 将产生一个loooong列表)。此外,该列表足够短,您可以添加换行符并使用“#”注释掉条目。然后在安装额外的软件包时,您可以执行
$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y
Run Code Online (Sandbox Code Playgroud)
这样,如果您只想在某些机器上安装某些软件包,则不必将它们从软件包列表中完全删除。
pjz*_*pjz 17
dpkg --get-selections >/tmp/mypackagelist
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩。然后,在确保新机器上的 /etc/apt/sources.list 与旧机器上的条目集相同后,将 mypackagelist 复制到新机器上并执行:
cat mypackagelist | xargs apt-get -y install
Run Code Online (Sandbox Code Playgroud)
你应该很高兴去。
请注意, dpkg --get-selections 行也是偶尔放入 /etc/dir 的好信息 - 这意味着您不必费心备份 /bin/ 和 /usr/bin/ 等,因为您知道系统上有哪些包。