用于清除和重新安装包的命令

有时包破坏了,需要从头开始重新安装。 我可以使用apt-get purge然后使用apt-get install ,但是我必须查看是否已卸载任何依赖包并记得重新安装它们。

是否有一个命令来清除并重新安装一个处理依赖关系的包? 如果包依赖于正在重新安装的包,那么该包应该保留在原位,或者也应该重新安装。

这是不可取的,但你可以削弱apt并直接转到dpkg

例如,采用postfixpostfix-dev

 $ sudo apt-get purge postfix Reading package lists... Done Building dependency tree Reading state information... Done. The following packages will be REMOVED: postfix* postfix-dev* 0 upgraded, 0 newly installed, 2 to remove and 99 not upgraded. After this operation, 4449 kB disk space will be freed. Do you want to continue? [Y/n] n Abort. 

现在我们使用dpkg来清除postfix而不删除dependents:

 $ sudo dpkg --purge --force-depends postfix dpkg: postfix: dependency problems, but removing anyway as you requested: postfix-dev depends on postfix (>= 3.1.0-0). postfix-dev depends on postfix (<< 3.1.0.0-0). postfix-dev depends on postfix (>= 3.1.0-0). postfix-dev depends on postfix (<< 3.1.0.0-0). (Reading database ... 293223 files and directories currently installed.) Removing postfix (3.1.0-3) ... Purging configuration files for postfix (3.1.0-3) ... Processing triggers for libc-bin (2.23-0ubuntu5) ... Processing triggers for man-db (2.7.5-1) ... 

现在重新安装postfix

 $ sudo apt-get install postfix Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: procmail postfix-mysql postfix-pgsql postfix-ldap postfix-pcre sasl2-bin dovecot-common postfix-cdb postfix-doc The following NEW packages will be installed: postfix 0 upgraded, 1 newly installed, 0 to remove and 99 not upgraded. Need to get 0 B/1152 kB of archives. After this operation, 3697 kB of additional disk space will be used. Preconfiguring packages ... Selecting previously unselected package postfix. (Reading database ... 293035 files and directories currently installed.) Preparing to unpack .../postfix_3.1.0-3_amd64.deb ... Unpacking postfix (3.1.0-3) ... ...