Linux/本地源中旧软件包的清理
本地源中旧软件包的清理
[编辑]ubuntu系统时常会有更新,过了一段时间在本地源里会积累下不少旧的软件包,因为软件包太多,不知道哪个该删哪个不该删。
在前面己经讲过,系统下载的软件包放在/var/cache/apt/archives目录下。ubuntu提供了两条条命令,来管理这个目录里的软件包。其中一条是
sudo apt-get autoclean
功能是,删除这个目录中己经不能再从你的软件源中下载的软件包。
在/etc/apt/sources.list文件里存放着软件源的地址,在更新的时候会从这些地方下载从它们那里能下载到的所有软件包的信息。这些源会更新自己的软件包,这样旧的版本就不会在它的软件包列表里。这样使用这条命令就能删除旧软件包。
但是,我们的本地源里的软件包不在那个目录里呀。这个好办,为本地源中软件包所在文件夹Packages建立一个链接,方法是右键菜单里选创建链接。然后因为权限问题用下面这条命令以超级用户权限打开linux的资源管理器nautilus
sudo nautilus
用上面这条命令打开的窗口中将刚刚创建的链接剪切到/var/cache/apt/下,在原来的archives文件夹的文件名后面加个英文句号,这是为了便于恢复。然后把链接重命名为archives。在linux下对链接进行操作和对原有文件进行操作是一样的。
然后,又有一个问题是,有一些软件源里可能还留着几个旧的软件包,这样用sudo apt-get autoclean就不能删除所有旧的软件包。还有可能在一些软件源里提供的软件包,在另一些软件源里不提供,这样如果软件源有变动的话不是会删除有用的软件包吗?
我们不是己经做了本地源吗?在把新的软件包放进去以后,重新扫描一下软件信息,这个可以看上面本地源的制作,扫描完以后你的本地源信息里全是最新软件包信息,而且有用的软件包一个不少。
下面要做的就是把原有软件包信自全删了,把本地源中的软件包信息导入。可以先备分一下,软件包信息放在/var/lib/apt/lists。打开软件源列表
sudo gedit /etc/apt/sources.list
先备分里面的内容,然后全删了,把你的本地源放进去,即把下面内容复制进去
deb file:///media/backup/binary-i386 intrepid main
然后更新软件源信息
sudo apt-get update
然后,在软件源列表中不存在的源的信息会被删除,只剩下你本地源中的软件包信息。
现在再执行下面这条命令就可以了
sudo apt-get autoclean
完事以后,别忘了把系统恢复原样。
再介绍一下另外一条指令
sudo apt-get clean
这条指令的功能是删除/var/cache/apt/archives目录下的所有软件包,在做完本地源后为了节省空间可以用这条命令来删除这个目录里的软件包。千万别跟上面说的那条指令弄混了,不然的话你想哭都没地方哭去。