Answers:
APT(高级打包工具)是Ubuntu用于管理系统上安装的所有软件的系统。它允许您将程序包“固定”到特定版本,以便在运行Update Manager时不会对其进行更新。
要固定内核软件包,首先必须确定内核的版本。一种方法是在系统>管理中打开Synaptic软件包管理器。
在快速搜索文本字段中输入“ linux-generic”,然后按Enter。
记下“已安装版本”列中列出的编号。我们将在下一步中使用它。
接下来,我们需要编辑文件/ etc / apt / preferences。通过按Alt + F2打开“运行应用程序”窗口并输入以下内容来打开它:
gksudo gedit /etc/apt/preferences
这将打开一个gedit窗口。该窗口很可能是空白的,除非您之前曾玩过APT。
在窗口中,键入以下内容,将版本号替换为您在Synaptic软件包管理器中找到的版本号。
Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic
Pin: version <insert version here>
Pin-Priority: 1001
保存文件并关闭gedit。如果打开更新管理器,您应该看到Linux内核更新现在已隐藏!
从上面记住内核的软件包名称。
打开一个终端并运行:
sudo -s
并击中enter。
输入sudo的密码:
echo kernel_package_name hold | dpkg --set-selections
用kernel_package_name
您要固定的内核名称替换。
现在运行:
sudo apt-get update && sudo apt-get upgrade
打开一个终端
sudo -s
echo kernel_package install | dpkg --set-selections
用您要固定的软件包替换kernel_package。
现在运行:
sudo apt-get update && sudo apt-get upgrade
您尝试做的事情称为固定。我上面提供给您的资源具有完成手头任务必须做的基本工作。
关于superlexx的建议:该行将缺少“ headers”包:
dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}'
linux-image-3.13.0-48-generic
linux-image-extra-3.13.0-48-generic
那么如何简单地使用以下内容:
dpkg -l "*$(uname -r)*" | grep kernel | awk '{print $2}'
linux-headers-3.13.0-48-generic
linux-image-3.13.0-48-generic
linux-image-extra-3.13.0-48-generic
dpkg -l "*$(uname -r)*" | awk '/kernel/{print $2}'
在Ubuntu 16.04.1上,以下代码有效
for i in $(dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}'); do echo $i hold | sudo dpkg --set-selections; done
这是对Superlexx代码的改进,sudo
添加了
dpkg -l | grep linux-image
你会找到:
嗨 linux-image-4.4.0-34-generic ...
嗨 linux-image-extra-4.4.0-34-generic ...
请注意,标记现在显示为hi
,而不是ii
取下针
for i in $(dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}'); do echo $i install | sudo dpkg --set-selections; done
sudo
在注释中未添加命令...
较短的版本:(用“安装”替换“保持”以删除图钉)
dpkg -l "*$(uname -r)*" | grep kernel | awk '{print $2,"hold"}' | sudo dpkg --set-selections
要查看所有内核映像和标头的状态,请运行:
dpkg --get-selections | grep "linux-"