关于Linux的软件包管理
时间:2009-03-03
来源:互联网
比如,我装了Arch装了Xorg装了KDE装了E17,用了两年之后,发现Linux占了9G的空间(Pacman -Scc过了)。按理说Arch+Xorg不会超过1G,KDE完整安装才700多M,E17更是只有100多M。再看日志也没超过1G,Home目录是2点多G。应该是使用期间或编译安装软件期间装了很多运行时依赖的包或是缓存文件越来越多,久而久之就超过了9G。
于是我想删掉那些使用次数很少的软件包,但整个系统的包那么多(1000多),我应删除哪些呢,我真的是不知道。大家是否也有过我这样的经历呢。
所以虽然Linux是一个开放的平台,总感觉自己对Linux的软件包老是一无所知的。而后观Windows,虽然它是一个不开放的,系统安装完全后,我们不知道它的内部组成,而只知道怎么用。可一但安装自己想要的应用软件后,它都会在“控制面板”里添加一个条目,对应单个人来说,他所安装的应用软件的数目是很有限的,只要我们一进“添加/删除”我们就能知道我们装了什么东西。而Linux的所有的东西都是有着N个数目的一个一个的软件包,包与包之间还有错综复杂的依赖关系。
能不能有这样一个方法,建立一个软件包使用次数的数据库,内核记录执行文件对应的软件包的使用频率,使我们对所安装的软件包有一个直观明了的认识,为软件包的删除或保留提供依据。用得少的就删掉算了。
作者: 月魄孤魂 发布时间: 2009-03-03
至于debian系的apt-get autoremove,大家应该都很熟悉吧。
建议楼主以后发感想之前,先搞清楚是系统的问题呢,还是你的问题
作者: ashunter 发布时间: 2009-03-03
作者: levn 发布时间: 2009-03-03
pacman -Rscn pkg |
查看不需要的包 |
我的意思是,过了很久之后,我并不知道我之前装了什么东西。请不要误解。
windows占用空间总是增长的莫名其妙…… |
作者: 月魄孤魂 发布时间: 2009-03-03
作者: 月魄孤魂
并不知道每个包是干嘛的,所以列不出这个“pkg”
|
你应该运行 pacman -R --help 看看各个参数的作用
作者: zhong 发布时间: 2009-03-03
完全没有依赖关系的包只有十多个.
就算有些包是有依赖关系的,但这些包是某个主包的功能的扩展,但我可能只用了一两次这个扩展就不用了,你说我想删掉无用的东西,但其实很久之后我根本就忘了已经装这个扩展,我应该怎么做?
看来只有我一个人遇到这种问题.
作者: 月魄孤魂 发布时间: 2009-03-03
http://www.coagul.org/article.php3?id_article=546
作者: levn 发布时间: 2009-03-03
作者: levn
我觉得还是用Baobab啊fsview啊Gdmap啊,看看什么文件占空间太多比较实在些……
http://www.coagul.org/article.php3?id_article=546 |
"Baobab (gtk)"那个就是Solaris系统自带的.
作者: 月魄孤魂 发布时间: 2009-03-03
还提醒一下楼主,包管理的问题,说Arch或者什么发行版就好,不要说Linux
作者: cheeselee 发布时间: 2009-03-03
作者: seenxu 发布时间: 2009-03-03
By the way,Windows 就是因为易用性而占领了超过88%(08年)的桌面市场.
作者: 月魄孤魂 发布时间: 2009-03-03
作者: 月魄孤魂
这也有一定的道理,但现在的机械工程 软件工程的目的就是解放劳动力.Linux系统软件包没一千也有几百,要做到心中有数谈何容易;确实不好的就应该改进.
|
提到windows...用过的都知道windows积累垃圾的功能是最强大的.......
你所说的易用和软件包积累没多少关系
作者: zhong 发布时间: 2009-03-03
作者: 月魄孤魂
这也有一定的道理,但现在的机械工程 软件工程的目的就是解放劳动力.Linux系统软件包没一千也有几百,要做到心中有数谈何容易;确实不好的就应该改进.
By the way,Windows 就是因为易用性而占领了超过88%(08年)的桌面市场. |
* 包管理和易用性根本就没有关系,更没必要和windows比,因为不同的系统针对的用户群不同,如果觉得一个系统不爽,不用就是了,何必强求自己呢?
* 不好的东西确实需要改进,如果你有时间你可以帮助改进包系统,开源社区没有义务去满足所有人的需求,何况我没觉得现在的包管理有什么问题,用的很好,很舒服,有问题的,只能自己想办法了。
作者: seenxu 发布时间: 2009-03-03
2、楼主说的那个直观了解软件的使用频率,用kde的人都会心的笑了,因为kde的主菜单就有这功能
3、如果更多的是桌面应用,不要充高手,少用命令行,用GUI界面的软件更适合你
作者: jobinson99 发布时间: 2009-03-03
看来我是被别人笑话的,不再讨论了.
好不容易发了一贴,想到一个Idea,却被N个人围攻……(还以为会有人讨论这个Idea的可行性、如何实现等等)……
作者: 月魄孤魂 发布时间: 2009-03-03
很直观,笨人的做法
作者: newlycc 发布时间: 2009-03-03
作者: cheeselee 发布时间: 2009-03-03
如果linux上也出现许多这样的软件会怎么样呢?会不会越用越慢?安装程序不规范的还能干净卸载吗?
作者: chenzhen 发布时间: 2009-03-03
作者: 月魄孤魂
我在Arch装的第一个桌面是KDE,之后装的第一个软件是Shaman.
看来我是被别人笑话的,不再讨论了. 好不容易发了一贴,想到一个Idea,却被N个人围攻……(还以为会有人讨论这个Idea的可行性、如何实现等等)…… |
一般X下的软件都会显示在对应菜单里,可以了解系统安装了哪些软件。平时安装软件包时,是依赖包的注意加下--asdeps 参数,这也可以用在一些临时安装的软件上,灵活使用。有一些常用的pacman参数组合,可以从arch wiki上查看。如:
pacman -Qdt 查看孤立的依赖包
pacman -Rns 删除软件包、其依赖包及不保存配置文件
pacman -S --asdeps 当作依赖包安装
还可以联合着使用:
pacman -Rns `pacman -Qdtq`
再配合GUI的管理软件如,shaman\gtkpacman之类的
作者: maxint 发布时间: 2009-03-03
作者: 月魄孤魂
我在Arch装的第一个桌面是KDE,之后装的第一个软件是Shaman.
看来我是被别人笑话的,不再讨论了. 好不容易发了一贴,想到一个Idea,却被N个人围攻……(还以为会有人讨论这个Idea的可行性、如何实现等等)…… |
你用kde竟然还会提软件使用频率没有显示这个问题,这个在主菜单就显示的啊(最常用5软件)!不能不说是粗心了
作者: jobinson99 发布时间: 2009-03-03
作者: 月魄孤魂
我在Arch装的第一个桌面是KDE,之后装的第一个软件是Shaman.
看来我是被别人笑话的,不再讨论了. 好不容易发了一贴,想到一个Idea,却被N个人围攻……(还以为会有人讨论这个Idea的可行性、如何实现等等)…… |
安装一个软件包.如果它的依赖包没安装.那么 pacman 会要你把依赖包也一起安装了..
但删除的时候.pacman 不会帮你把依赖包删除.它也不会自作的聪明的帮你把依赖包删除掉(这也是没可能的事).久了就会出现你所说的积累了很多软件包..所以删除软件包时.一般都要多加些参数.
最常用的是 pacman -Rscn
明白?
作者: zhong 发布时间: 2009-03-03
作者: suifengcnn 发布时间: 2010-06-02
作者: newlycc
我在家目录下一直有个文本文件,每次装东西时就在这个文件里记录一下,删时就加个#
很直观,笨人的做法 |
作者: vimtex 发布时间: 2010-06-02
作者: zhong
怪不得你的系统能有1000多个包.....
你应该运行 pacman -R --help 看看各个参数的作用 |

Console ~ $ pQ | wc -l 350
作者: qiang_liu8183 发布时间: 2010-06-02
卸载软件用pacman -Rscn xxx或者pacman -Rsscn xxx
pacman -Qh 看选项
pacman -Qt 查看你pacman的所有包
pacman -Qtd 查看不被依赖的包
上述几个命令就能完全100%的解决lz的所有问题……
另外推荐个命令:
cd /
du --max-depth=1 -h
结果自己分析
作者: yafeng 发布时间: 2010-06-02
而不是抱怨linux包管理如何,也许还是用回win更适合你
作者: sanitizer84 发布时间: 2010-06-02
作者: qiang_liu8183
我才350个包~~~
![]()
代码:
Console ~ $ pQ | wc -l 350 |
作者: naturennn 发布时间: 2010-06-02
用回windows这类话怕是重了点,长此以往我辈菜鸟都不敢说话了。
作者: santi 发布时间: 2010-06-02
在此,给楼主些鼓励,一个想法的形成,说明你在思考,不管这个想法是幼稚,是天真,还是可笑,都说明楼主在用linux的时候在思考所遇到的问题,这难道不应该鼓励吗?难道高手们就非得用说教的口吻,高高在上的姿态告诉楼主你错了,你错大发了。。你根本就不理解,了解linux。。。请问高手们?有意思吗?
作者: vicwjb 发布时间: 2010-06-02
但我水平太低,无能为力。
Work around吧!我只能无奈的这么说。
------------------------------------------
关于你的Idea。
我觉得由于linux的哲学,包与包之间的耦合度太高了。即使想删掉某个包,往往做不到的。
记录包的使用次数,不但无法改变这个事实,而且费资源,再者,理论上讲应该是只能记录某个程序/库被调用的次数,而要逆向查找这个程序/库属于那个包又非常困难。何况,一个包里面可能同时包含调用次数非常程序/库,和调用次数非常少的程序/库,且两者完全有可能是不可分的。(毕竟你不能期待一个发行版的包打包的有多么好)
作者: twando 发布时间: 2010-06-02
作者: vicwjb
高手们,都是说教的口吻,我等菜鸟还真是怕怕呢!
在此,给楼主些鼓励,一个想法的形成,说明你在思考,不管这个想法是幼稚,是天真,还是可笑,都说明楼主在用linux的时候在思考所遇到的问题,这难道不应该鼓励吗?难道高手们就非得用说教的口吻,高高在上的姿态告诉楼主你错了,你错大发了。。你根本就不理解,了解linux。。。请问高手们?有意思吗? |
作者: 月魄孤魂 发布时间: 2010-06-02
作者: vicwjb 发布时间: 2010-06-02
不过现在改过来了,把自己装过的软件都记住了
作者: ulosggs 发布时间: 2010-06-02
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28