Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I am running Ubuntu 12.04.1 LTS i686 on VirtulBox. Every time I check the updates, there's a new Linux kernel. If I install the new kernel, I have to install the Virtulbox Guest Additions again and reboot the server. I don't want to do this every week. I know I can manually uncheck the kernel packages from update manager, but is there a way to skip the kernel update automatically? I found an answer here, but it's for Ubuntu 10. Thanks.

share|improve this question
add comment

2 Answers 2

up vote 7 down vote accepted

APT (Advanced Packaging Tool) is the system that Ubuntu uses to manage all of the software installed on a system. It allows you to “pin” a package to a certain version, so that it won’t be updated when you the Update Manager runs.

To pin your kernel packages, first you must determine what version your kernel is. One way to do this is to open the Synaptic Package Manager in System > Administration.

enter image description here

Type in “linux-generic” in the Quick search text field and hit enter.

enter image description here

Make a note of the number listed in the “Installed Version” column. We’ll use it in the next step.

Next, we need to edit the file /etc/apt/preferences. Open it by pressing Alt+F2 to bring up the Run Application window and entering in:

gksudo gedit /etc/apt/preferences

enter image description here

This will open up a gedit window. Most likely the window will be blank, unless you’ve played around with APT before.

In the window, type in the following, replacing the version number with the version number you found in the Synaptic Package Manager.

Package: linux-generic linux-headers-generic linux-image-generic linux-restricted-modules-generic
Pin: version <insert version here>
Pin-Priority: 1001

enter image description here

Save the file and close gedit. If you open the Update Manager, you should see that the Linux kernel updates are now hidden!

enter image description here

Source

Blocking packages with APT/DPKG

Remember the package name of your kernel from above.

Open a terminal and run:

sudo -s

And hit enter.

Enter your password for sudo:

echo kernel_package_name hold | dpkg --set-selections

Replace kernel_package_name with the name of the kernel you want to pin.

Now run:

sudo apt-get update && sudo apt-get upgrade

To remove pin from Apt/Dpkg:

Open a terminal

sudo -s
echo kernel_package install | dpkg --set-selections

Replace kernel_package with the package you want to pin.

Now run:

sudo apt-get update &&  sudo apt-get upgrade

Source

What you're trying to do is called pining. The sources i gave you above, have the essentials on what you must do to accomplish your tasks in hand.

share|improve this answer
1  
Thanks for your reply. It seems that we are using different version. I don't have Synaptic Package Manager and /etc/apt/preferences on my Ubuntu 12.04. –  garconcn Aug 21 '12 at 0:20
2  
Yes, Synaptic is no longer installed by default. –  izx Aug 21 '12 at 0:31
1  
@garconcn, you can install Synaptic and install the fix i told you, or read the question again, as i have put more info on it –  LnxSlck Aug 21 '12 at 0:49
2  
@LnxSlck, I installed Synaptic and followed your instruction. It works. Thanks. –  garconcn Aug 21 '12 at 0:52
add comment

In one line it is:

echo $(dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}') hold | dpkg --set-selections

This will set kernel's image state from install to hold and thus will prevent updates.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.