jes5199 Asked: 2009-08-21 12:45:37 +0800 CST2009-08-21 12:45:37 +0800 CST 2009-08-21 12:45:37 +0800 CST 在另一个系统上安装相同的 debian 软件包 772 如何导出系统上已安装 Debian 软件包的列表,然后在新系统上安装这些相同的软件包? debian 5 个回答 Voted Best Answer faultyserver 2009-08-21T12:48:25+08:002009-08-21T12:48:25+08:00 要备份: sudo dpkg --get-selections > /tmp/dpkglist.txt 恢复: sudo dpkg --set-selections < /tmp/dpkglist.txt sudo apt-get -y update sudo apt-get dselect-upgrade 另请参阅此问题以获取其他选项和信息:Ubuntu, how to setup a new machine like an existing one 我在每日 cronjob 中运行上述内容,将 dpgklist 作为我们服务器清单的一部分检查到 SVN 中。这将允许您在服务器上保持合理准确的已安装软件包清单,并且可以轻松进行快速的并排比较以查看服务器是否缺少特定软件包。 Vihang D 2009-09-03T02:08:34+08:002009-09-03T02:08:34+08:00 aptitude也满足这个用例,它保留了其他方法没有的“自动安装”包的信息。在参考机器上运行以下命令: aptitude search -F '%p' '~i!~M' > package_list 复制package_list到另一台机器并运行 xargs aptitude --schedule-only install < package_list; aptitude install; user17642 2009-08-21T12:59:51+08:002009-08-21T12:59:51+08:00 这是一个好主意,如果您养成了这样的习惯,您还可以使用apt-proxy设置一台服务器。 adiuva 2017-04-22T02:39:57+08:002017-04-22T02:39:57+08:00 只有在按照http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html运行不同的命令后,faultyservers 的答案才对我有用 sudo apt-get install dselect sudo dselect access sudo dselect update 在运行之前 sudo apt-get dselect-upgrade 只返回 [...] dpkg:警告:第 302 行的包不在数据库中:xfonts-utils dpkg:警告:发现未知包;这可能意味着可用数据库已过时,需要通过前端方法更新 pi@FHEM-new:/tmp $ sudo apt-get dselect-upgrade 正在 读取包列表...完成 构建依赖关系树 读取状态信息...完成 0 个已升级,0 个新安装,0 个要移除,0 个未升级。 我试图在我的新树莓(Raspbian GNU/Linux 8(jessie))上安装旧树莓派(运行 Raspbian GNU/Linux 7(wheezy))中的相同软件包。 Alastair Irvine 2021-07-04T10:24:17+08:002021-07-04T10:24:17+08:00 在 Debian/Ubuntu/Mint 的最新版本中,dpkg需要可用的软件包在其“可用”数据库中dpkg --set-selections才能工作。 示例序列: (在其他系统上)dpkg --get-selections > installed.dselect sudo apt update apt-cache dumpavail | sudo dpkg --merge-avail sudo dpkg --set-selections < installed.dselect sudo apt-get dselect-upgrade 第三个命令填充 dpkg 的“avail”数据库。在设置要安装的附加包的选择之前运行它很重要。 这需要 dpkg v1.17.7 及更高版本。请参阅问:为什么 ''dpkg --set-selections'' 不记录未知包的选择?在 Debian wiki 上了解更多详细信息。
要备份:
恢复:
另请参阅此问题以获取其他选项和信息:Ubuntu, how to setup a new machine like an existing one
我在每日 cronjob 中运行上述内容,将 dpgklist 作为我们服务器清单的一部分检查到 SVN 中。这将允许您在服务器上保持合理准确的已安装软件包清单,并且可以轻松进行快速的并排比较以查看服务器是否缺少特定软件包。
aptitude
也满足这个用例,它保留了其他方法没有的“自动安装”包的信息。在参考机器上运行以下命令:复制
package_list
到另一台机器并运行这是一个好主意,如果您养成了这样的习惯,您还可以使用apt-proxy设置一台服务器。
只有在按照http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html运行不同的命令后,faultyservers 的答案才对我有用
sudo apt-get install dselect sudo dselect access sudo dselect update
在运行之前
sudo apt-get dselect-upgrade
只返回
我试图在我的新树莓(Raspbian GNU/Linux 8(jessie))上安装旧树莓派(运行 Raspbian GNU/Linux 7(wheezy))中的相同软件包。
在 Debian/Ubuntu/Mint 的最新版本中,
dpkg
需要可用的软件包在其“可用”数据库中dpkg --set-selections
才能工作。示例序列:
dpkg --get-selections > installed.dselect
sudo apt update
apt-cache dumpavail | sudo dpkg --merge-avail
sudo dpkg --set-selections < installed.dselect
sudo apt-get dselect-upgrade
第三个命令填充 dpkg 的“avail”数据库。在设置要安装的附加包的选择之前运行它很重要。
这需要 dpkg v1.17.7 及更高版本。请参阅问:为什么 ''dpkg --set-selections'' 不记录未知包的选择?在 Debian wiki 上了解更多详细信息。