Ubuntu禁止某个软件包升级,解决GCompris讨厌的My GCompris目录

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
pmshou
帖子: 315
注册时间: 2012-05-05 20:21

Ubuntu禁止某个软件包升级,解决GCompris讨厌的My GCompris目录

#1

帖子 pmshou » 2012-05-19 21:29

这个帖子是为了以后查询。
由于My GCompris会自动生成 $HOME/My GCompris目录,比较讨厌,而参数--user-dir竟然不可用,也不能把user_dir=...写在配置里。

只好下载源码重新编译:修改源码,改成$HOME/.compris目录,终于清静了。
但由于重新编译安装,所以升级时,提示我更新。

没办法,只好禁止升级了。

代码: 全选

sudo echo "gcompris hold" | sudo dpkg --set-selections
sudo echo "gcompris-data hold" | sudo dpkg --set-selections
相关资料引用:http://hi.baidu.com/qshen/blog/item/c1a ... 9065e.html
在ubuntu或者debian下,用apt-get upgrade或者apt-get dist-upgrade命令自动更新软件。如果某个软件有更新的版本,apt-get会删除原来的版本并安装更新的版本。

一般情况下,我们希望apt执行这种默认的行为。但是有时候却不想更新某些软件。比如你系统自带的硬件驱动性能不好,你自己安装了一个其他的更好的,但是,随着时间的推移,更新的版本出现在apt的列表中,并且apt中的版本号更大导致apt认为这个可以替换你手工安装的最佳版本,因此,系统这个时候自动更新的话就不好了,所以得设法禁止系统自动更新该软件。

有时候,受到工作限制,比如,系统apt内的mysql是5.0版本,公司开发要求的环境也是5.0版本,但是某一天,系统apt的升级到了5.1.X,公司要求的环境没有升级,这时候,apt-get dist-upgrade可就糟糕了。

以上这几种情况怎么办呢?就是给这个软件打上一个hold标记。

命令为:

sudo echo "软件包名 hold" | sudo dpkg --set-selections

比如我想给mysql-server锁定当前版本不更新,命令是:

sudo echo "mysql-server hold" | sudo dpkg --set-selections

查询当前系统内所有软件包的状态,命令为:

sudo dpkg --get-selections | more

查询当前系统被锁定不更新的软件包状态(hold),命令为

sudo dpkg --get-selections | grep hold
看我注册日期:从此告别WINDOWS!
BIVG_youtoo
帖子: 121
注册时间: 2012-07-18 11:17

Re: Ubuntu禁止某个软件包升级,解决GCompris讨厌的My GCompris目录

#2

帖子 BIVG_youtoo » 2012-12-07 13:20

:em11 你就是才人
回复