我已经使用两个运行 Lubutu 的虚拟机对此进行了测试。
首先,我安装了几个程序(VIM 和 cowsay)然后运行:
sudo apt-get update
sudo apt-get upgrade
sudo dpkg --get-selections > /home/klak/my_package_list.txt
Run Code Online (Sandbox Code Playgroud)
然后我启动到另一个虚拟机,它是 VIM 和 cowsay 安装之前的前一个虚拟机的克隆,并运行以下命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install dselect
sudo apt-get dselect update
sudo dpkg --set-selections < ./my_package_list.txt && sudo apt-get -u dselect-upgrade
Run Code Online (Sandbox Code Playgroud)
但是,我现在希望能够加载 VIM 或使用 cowsay,但我得到:
klak@klakBox:/media/share$ vim
The program 'vim' can be found in the following packages:
* vim
* vim-gnome
* vim-tiny
* vim-athena
* vim-gtk
* vim-nox
Try: sudo apt-get …
Run Code Online (Sandbox Code Playgroud) 请注意version-specific
问题标题!这个问题不是,如何
这个问题更确切地说是如何
最近,我对我的一个 Debian 机器进行了一次“大更新”(即涉及大量软件包或内核等主要软件包,或两者兼而有之),但它没有“干净地”更新(即没有重大问题)。将来,当我对 Debian 机器应用错误更新时,我希望能够将(a)同一机器上设置的软件包(b)回滚到以前的版本。(之前没有进行图像备份,这很慢。)不幸的是我不知道该怎么做。我知道如何
感谢许多讨论如何做到这一点的网页,包括几个 SE。大多数(包括这个、这个和这个)都会或多或少地进行复杂的变化
dpkg --get-selections > ${PACKAGE_LIST_FILEPATH}
dpkg --set-selections < ${PACKAGE_LIST_FILEPATH}
可能是关于这个主题的最全面的(也是最脚本化的,我更喜欢的)SE 是这个:它是少数几个推荐备份存储库列表(使用cp -R /etc/apt/sources.list*
)和存储库密钥(使用apt-key exportall
)的 SE 之一,但它也使用dpkg
上面的方法。此 SE建议使用aptitude …