从apt升级中排除/保留/阻止特定软件包的三种方法
原创从apt升级中排除/保留/阻止特定软件包的三种方法
在Linux系统中,使用apt(Advanced Package Tool)进行软件包管理是常见的操作。apt不仅可以安装新的软件包,还可以升级已安装的软件包。但在某些情况下,我们大概需要排除、保留或阻止特定软件包的升级。以下是三种实现这一目标的方法。
### 方法一:使用apt-get命令排除特定软件包
在升级过程中,可以使用`apt-get`命令的`--ignore-package`选项来排除特定软件包的升级。
1. 打开终端。
2. 使用`sudo`权限执行以下命令:
bash
sudo apt-get update
sudo apt-get upgrade --ignore-package=软件包名称
例如,如果你想排除`firefox`软件包的升级,可以使用以下命令:
bash
sudo apt-get upgrade --ignore-package=firefox
这种方法单纯直接,但只能排除单个软件包的升级。
### 方法二:使用dpkg阻止特定软件包的升级
使用`dpkg`命令可以阻止特定软件包的升级。这种方法适用于需要长期保留某个特定版本的软件包。
1. 打开终端。
2. 使用`sudo`权限执行以下命令:
bash
sudo dpkg --get-selections | grep -v "deinstall" | grep "软件包名称" | awk '{print $1}' | xargs sudo dpkg --set-selections --refuse-upgrade
例如,如果你想阻止`nginx`软件包的升级,可以使用以下命令:
bash
sudo dpkg --get-selections | grep -v "deinstall" | grep "nginx" | awk '{print $1}' | xargs sudo dpkg --set-selections --refuse-upgrade
这种方法可以阻止多个软件包的升级,但需要手动更新每个需要阻止的软件包。
### 方法三:使用unattended-upgrades配置文件
`unattended-upgrades`是一个自动升级工具,可以帮助我们在不干预的情况下升级软件包。通过修改其配置文件,我们可以排除、保留或阻止特定软件包的升级。
1. 打开终端。
2. 使用`sudo`权限编辑`/etc/apt/apt.conf.d/50unattended-upgrades`文件:
bash
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
3. 在文件中找到以下行:
bash
# Package upgrade options
4. 在下一行添加以下内容:
bash
Package: firefox
Pin: release a=*
Pin-Priority: 100
这将阻止`firefox`软件包的升级。
5. 保存并关闭文件。
这种方法可以方便地管理多个软件包的升级,但需要修改配置文件。
### 总结
以上三种方法都可以帮助我们排除、保留或阻止特定软件包的升级。在实际应用中,可以凭借具体需求选择合适的方法。期待这篇文章能对你有所帮助。