我已经构建了自己的 lighttpd .deb 软件包,但我不想使用 apt-get 命令升级它。另外,我不想再升级一些软件包,例如 php5-cgi、httpd 等。如何将一个或多个软件包列入黑名单,以便当我运行 apt-get Upgrade 时,它会忽略列入黑名单的软件包并在 Debian 或 Ubuntu Linux 服务器系统下安装其余更新?
教程详情 | |
---|---|
难度级别 | 中间的 |
根权限 | 是的 |
要求 | 包装袋 |
美东时间。阅读时间 | 2分钟 |
您需要使用dpkg command- 一个工具来安装、构建、删除和管理 Debian 软件包。Debian 或 Ubuntu Linux 下的每个软件包都有以下选择统计信息:
- install– 选择安装包。
- hold– 标记为保留的包不会由 dpkg 处理,除非使用选项 –force-hold 强制执行此操作。
- deinstall– 选择卸载该软件包(即我们要删除除配置文件之外的所有文件)。
- purge– 选择要清除的包(即我们要删除系统目录中的所有内容,甚至是配置文件)。
选项 #1:dpkg 命令语法
要将 Debian / Ubuntu 软件包列入黑名单,请使用以下命令:
echo "packageName 保留" | dpkg --set-selections 回显 “lighttpd 保持” | dpkg --设置选择
要删除软件包保留并再次安装/升级:
echo "packageName install" | dpkg --set-selections echo“ lighttpd安装” | dpkg --set-selections
选项#2:/etc/apt/apt.conf.d/01autoremove
另一个选项是编辑一个名为 的文件/etc/apt/apt.conf.d/01autoremove,输入:
# vi /etc/apt/apt.conf.d/01autoremove
示例输出:
易于 { 从不自动删除 { "^固件-linux.*"; “^linux-固件$”; "^linux-image.*"; "^kfreebsd-image.*"; "^linux-restricted-modules.*"; “^linux-ubuntu-modules-.*”; }; 永不标记自动剖面 { “元包”; “受限/元包”; “宇宙/元包”; “多元宇宙/元包”; “旧库”; “受限/oldlibs”; “宇宙/oldlibs”; “多元宇宙/oldlibs”; }; };
将光标移动到名为“Never-MarkAuto-Sections”的部分的底部,并将条目附加到该部分以阻止 grub 我输入了“php5-cgi*”:
永不标记自动剖面
{
“元包”;
“受限/元包”;
“宇宙/元包”;
“多元宇宙/元包”;
“旧库”;
“受限/oldlibs”;
“宇宙/oldlibs”;
“多元宇宙/oldlibs”;
“php5-cgi*”;
};
保存并关闭文件。
关于 RHEL / CentOS / SL / Fedora Linux 用户的说明
您需要编辑一个名为 name.repo 的文件,请参阅如何在 RHEL / CentOS 下将软件包列入黑名单以获取更多信息。