如何将包选择状态设置为当前状态?
我做了一个dpkg --clear-selections
命令,发现我的所有包都被选中删除了。 正如手册所说的那样
–clear-selections:设置要卸载的每个非必要包的请求状态。
我后来才知道,如果我做一个sudo apt-get dselect-upgrade
将删除所有包。
我在Ask Ubuntu中检查了这个问题 ,并在dpkg -l
命令中读取了各种标志的含义。 有说,第一列显示“所需的包状态”或选择状态,第二列显示“当前状态”。
既然,我现在没有依赖问题,我想在dpkg数据库中将我的选择状态设置为所需的状态 。 我怎样才能做到这一点?
由于输出很大,我没有给出dpkg -l
的输出。 输出是所有ri
列。
当我做命令sudo apt-get dselect-upgrade
,它给了我这条消息,
.........在要删除的一长串包名后...... 警告:将删除以下基本包。 除非您确切知道自己在做什么,否则不应该这样做! apt ubuntu-keyring(由于apt)libapt-pkg4.12(由于apt)libstdc ++ 6(到期) to))gnupg(由于apt)base-files bash 4个升级,0个新安装,1764个删除,1个未升级。 需要获得0 B / 1,359 kB的档案。 执行此操作后,将释放3,078 MB磁盘空间。 你即将做一些有害的事情。 要继续输入“是的,按我说的做”! ?]
有没有办法将软件包选择状态重置为当前安装状态?
尝试使用此命令更改包状态 –
echo " " | sudo dpkg --set-selections
假设您已将包zip
状态设置为deinstall
。 要回滚到原始状态, install
运行此命令 –
echo "zip install" | sudo dpkg --set-selections
要一次更改更多包,请使用此命令
dpkg --get-selections | sed -n 's/\<$//p' | sudo dpkg --set-selections
例如,要更改状态为deinstall的所有包以安装使用 –
dpkg --get-selections | sed -n 's/\
好的,我只需要这样做。 谢谢@sarowar的命令。 脚本为所有已安装的包执行此操作的步骤:
export IFS=' ' for i in $(dpkg -l |egrep '^[az]i.*' |awk '{print $2" install"}') ; do echo $i|dpkg --set-selections ; done unset IFS
- apt-get vs. aptitude .vs synaptic compatibility
- 文件系统所有者错误地更改了
- 以下软件包具有未满足的依赖项:无法安装任何软件。 Ubuntu 16:04
- 需要帮助删除linux-image-3.16.0-34-generic和linux-image-extra-3.16.0-34-generic
- 由于依赖性和配置问题导致内核安装失败导致apt和dpkg失败
- 内部gzip读错误
- 如何欺骗apt依赖?
- dpkg:错误:在第0行附近解析文件’/ var / lib / dpkg / available’
- 如何修复E:子进程/ usr / bin / dpkg返回错误代码(2)?