由于存在错误#693758,我希望阻止apt-get upgrade
Update Manager更新“ libgtk2.0-0”软件包。
如何做到这一点?
disable packages from the auto-update
由于存在错误#693758,我希望阻止apt-get upgrade
Update Manager更新“ libgtk2.0-0”软件包。
如何做到这一点?
disable packages from the auto-update
Answers:
保留软件包的方法有四种:dpkg,apt,aptitude或dselect。
将包裹搁置:
echo "<package-name> hold" | sudo dpkg --set-selections
取消保全:
echo "<package-name> install" | sudo dpkg --set-selections
显示软件包的状态:
dpkg --get-selections
显示单个软件包的状态:
dpkg --get-selections | grep "<package-name>"
持有包裹:
sudo apt-mark hold <package-name>
取消保全:
sudo apt-mark unhold <package-name>
显示所有保留的包裹:
sudo apt-mark showhold
使用dselect,进入[选择]屏幕,找到您想要保持在其当前状态的包装,然后按=或H。更改将在退出[S] elect屏幕后立即生效。
下列方法的局限性在于,将软件包锁定/保持在智能或突触范围内不会影响apt-get / apt。
持有包裹:
sudo aptitude hold <package-name>
取消保全:
sudo aptitude unhold <package-name>
转到Synaptic软件包管理器(系统>管理> Synaptic软件包管理器)。
单击搜索按钮,然后键入程序包名称。
找到软件包后,将其选中,然后进入“ 软件包”菜单,然后选择“ 锁定版本”。
该软件包现在将不会显示在更新管理器中,也不会被更新。
devscripts
,将打包的很多产品作为“推荐”产品包拉出。由于我不需要邮件服务器(后缀),因此可以通过在运行echo postfix hold | sudo dpkg --set-selections
之前运行来禁用其安装sudo apt-get install devscripts
。仅在此安装后,此保留操作才会保留,在安装后,重置选择。
apt-mark
不支持hold
apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev
。
搁置软件包“ foo”:
echo "foo hold" | dpkg --set-selections
在您的情况下,我们将搁置葡萄酒:
sudo -i
echo "wine hold" | dpkg --set-selections
删除保留:
sudo -i
echo "wine install" | dpkg --set-selections
apt-get install wine=1.2.3
。处于保留状态可防止apt-get (dist-)upgrade
更改它。
/var/cache/apt/archives
)与保留,升级和内容无关,因此您下载的所有版本都将存在,直到您运行apt-get [auto]clean
我一直在寻找相同的东西,经过大量研究,我发现使用以下语法可以禁止一个特定的版本,但允许下一个更新:
软件包:compiz-plugins-main 引脚:版本1:0.9.7.0〜bzr19-0ubuntu10.1 引脚优先级:-1
这进入/ etc / apt / preferences文件。
synaptic
使用安装sudo apt-get install synaptic
。
使用运行,gksudo synaptic
然后在搜索框上找到要锁定的软件包,即:gedit
从包菜单中选择“ 锁定版本”:
就是如此,即使在升级期间,锁定时当前安装的版本也将保持安装状态。
防止安装软件包称为“软件包保存”,这非常简单:
回声package_name保持| dpkg --set-selections
...其中package_name *是您要阻止安装的软件包的名称。
注意:以上命令假定具有root特权。换句话说,您可能需要sudo su
在运行之前键入。
s/sudo su/sudo -s/g
(或sudo -i
)。(-i
将提供登录外壳,-s
不会)。
您想了解的有关“持有”和“固定”包装到特定版本的所有信息:https : //help.ubuntu.com/community/PinningHowto
您可以巧妙地使用“特定替代”,如下所示:
aptitude reinstall ~i oracle-java8-jre:
这是一次性使用(不存储以供将来重新安装),保留特定的覆盖,以重新安装系统中的所有软件包,而不是oracle-java8-jre。
如果您使用Keep特定替代,则该软件包将暂时处于keep aaptitude状态,不会尝试安装它。
如果您认为您的系统在某种程度上受到损害,那么这是一件非常好的事情。
在与Ubuntu 16.04相关的@ soger注释中添加详细信息。
默认情况下,Ubuntu 16.04没有现有的/ etc / apt / preferences文件。如果当前没有该文件,则只需创建一个新文件,并使用上面的@soger描述的节填充该文件,即可从更新中排除给定的包及其依赖项。
然后,运行apt update
,您就是GTG。:0)
例如,我有一个带有嵌入式Intel视频卡和NVidia卡的Ubuntu 16.04.5 LTS服务器。NVidia卡是唯一使用的卡。该服务器还使用CUDA驱动程序。我有一个问题,apt
一直坚持
va-driver-all
(英特尔驱动程序)需要更新,但无法确定要安装的版本。这真让我发疯,而且我也不需要英特尔驱动程序。我将此文本输入到首选项文件中并刷新了apt,问题已解决。
Package: va-driver-all
Pin: release *
Pin-Priority: -1