我如何删除我已安装或系统已安装的完全相同的东西,例如添加对某种语言的支持?是否有我可以遵循的程序?Apt-get remove、autoremove 或 purge 不是我想要的,它会留下一些东西。
我目前正在研究debfoster
,但我希望我能监督一些更简单、更本土化的东西。
此时我必须从快照恢复我的系统以使其进入以前的设置,我正在开发国际应用程序,当我安装和卸载例如中文时,我最终会得到几个以前不存在的不需要的字体,这使我的测试变得毫无意义。
更新:
为了更新和澄清我的问题,我已经知道软件包安装是在一个月前记录的,我问如何正确删除中文支持我找到了一个解决方案,安装的软件包(包括我想删除的字体)只在 /var/log/dpkg.log 中。我正在寻找自动化或一些工具,可以自动执行此操作,这样我就不必在每次安装和卸载新语言或应用程序时处理日志。显然,Ubuntu 有一个小缺陷,它不会在删除语言时卸载字体,我确实安装了一种新语言,然后每天删除几次进行测试,我今天编写了一个脚本,我将日志中的所有内容都放在其中,不会卸载,我仍然希望我是在重新发明轮子,并且已经有一些程序可以跟踪软件包正在接触的文件和其他内容,并确保在删除时将其删除。
答案1
如果你通过包管理器(apt-get
、dpkg
、synaptic
)安装了“东西”,那么所有内容都会被记录下来/var/log/apt/*
。只需进行简单的编辑即可生成apt-get purge
命令。
如果您通过其他方式安装了“东西”(sudo make install
,,/usr/bin/cpan
...),则必须使用相同的方法将其卸载。
为了让您以后的生活更轻松,特别是如果您使用第二种方法,请考虑安装和使用installwatch
。从man
页面:
trusty (1) installwatch.1.gz
Provided by: checkinstall_1.6.2-4ubuntu1_i386
NAME
installwatch — Track installation of software
SYNOPSIS
installwatch [options] [command]
DESCRIPTION
installwatch is a program that is used in order to track the changes
made while installing local software (i.e. "make install"). It
monitors the requested command, and produces a log which indicates all
created and modified files.
答案2
我问题中提到的应用程序debfoster
终究是起到了作用,只是我花了一段时间才弄清楚它是如何使用的。
sudo apt-get install debfoster
生成 keepers 文件,存储在/var/lib/debfoster/keepers
:
sudo debfoster -q
这个 keepers 文件包含所有当前安装的软件包,下次安装某些软件包时,只需运行:
sudo debfoster
它将开始列出自上次生成 keepers 文件以来安装的所有软件包。系统将询问 9 个选项,其中前 4 个很重要:
Yes Keep the package. [default]
No Delete the package.
Prune Delete the package and the packages it is keeping installed.
Skip Skip this question.
更多信息man debfoster
或debfoster --help
。
这实际上甚至列出了使用 apt-get autoremove 或使用语言设置 GUI 卸载语言包时省略的字体。
答案3
我认为您所说的“相关”软件包是 apt 或 apt-get 提到的“附加”软件包(安装时)和“自动安装”软件包(删除时)。
据我了解这答案,sudo apt autoremove
如果运行,不应该留下任何东西后您的特定程序/包已被卸载。
查看前卸载程序,其安装(使用 apt 或 apt-get)带来了什么 - 按照链接的答案:
首先,运行sudo apt autoremove
以便 apt 从“干净”状态启动。
然后,模拟删除您的程序/包并记下自动安装的包:
sudo apt-get remove --dry-run YOUR_PROGRAM
这将给出类似
The following packages were automatically installed and are no longer required:
THE_LIST_OF_PACKAGES
Use 'sudo apt autoremove' to remove them.
卸载 YOUR_PROGRAM 后,如果愿意,请执行以下操作
sudo apt remove <THE_LIST_OF_PACKAGES>
代替sudo apt autoremove
。
至于debfoster
,如果你在安装程序之前已经安装了它并创建了 keepers 文件,那么查看程序附带了哪些附加软件包的简单方法是使用以下命令
sudo debfoster -r YOUR_PROGRAM