How to enable proposed archive repo on Ubuntu Linux to install packages

How do I enable the proposed archive for Ubuntu 16.04 LTS use the apt-get to installed selected kernel updated that is not released yet?

A proposed package provides an update that is not part of stable release yet. For example, Linux 4.4.0-62 has a bug that causes OOM killer. This bug has been fixed in Linux 4.4.0-63 and currently only available in proposed archive.

How to enable the proposed archive

To enable the proposed archive for Ubuntu 16.04 use the following method. You need to modify the software sources manually by adding the following line to /etc/apt/sources.list:

echo 'deb xenial-proposed restricted main multiverse universe' > /etc/apt/sources.list

Force selective upgrading from proposed

Create the file /etc/apt/preferences.d/proposed-updates, run:
$ sudo vi /etc/apt/preferences.d/proposed-updates
Append the following:

Package: *
Pin: release a=xenial-proposed
Pin-Priority: 400

Save and close the file.

Refresh archive repo

Type the following apt command/apt-get command:
$ sudo apt update
$ sudo apt-get update

How do I search for a package?

The syntax is:
$ apt search package
$ apt search linux-image
$ apt search linux-image | grep -i proposed

Sample outputs:

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

linux-image-4.4.0-1003-aws/xenial-proposed 4.4.0-1003.12 amd64
linux-image-4.4.0-63-generic/xenial-proposed 4.4.0-63.84 amd64
linux-image-4.4.0-63-lowlatency/xenial-proposed 4.4.0-63.84 amd64
linux-image-extra-4.4.0-63-generic/xenial-proposed 4.4.0-63.84 amd64

To install linux-image-4.4.0-63-generic from proposed repo, run:
$ sudo apt-get install linux-image-4.4.0-63-generic/xenial-proposed
Sample outputs:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Selected version '4.4.0-63.84' (Ubuntu:16.04/xenial-proposed [amd64]) for 'linux-image-4.4.0-63-generic'
The following packages were automatically installed and are no longer required:
  linux-headers-4.4.0-59 linux-headers-4.4.0-59-generic linux-image-4.4.0-59-generic
Use 'sudo apt autoremove' to remove them.
Suggested packages:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools linux-headers-4.4.0-63-generic
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.8 MB of archives.
After this operation, 66.4 MB of additional disk space will be used.
Get:1 xenial-proposed/main amd64 linux-image-4.4.0-63-generic amd64 4.4.0-63.84 [21.8 MB]
Fetched 21.8 MB in 4s (4,854 kB/s)                       
Selecting previously unselected package linux-image-4.4.0-63-generic.
(Reading database ... 92929 files and directories currently installed.)
Preparing to unpack .../linux-image-4.4.0-63-generic_4.4.0-63.84_amd64.deb ...
Unpacking linux-image-4.4.0-63-generic (4.4.0-63.84) ...
Setting up linux-image-4.4.0-63-generic (4.4.0-63.84) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-63-generic /boot/vmlinuz-4.4.0-63-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-63-generic /boot/vmlinuz-4.4.0-63-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-63-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-63-generic /boot/vmlinuz-4.4.0-63-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-63-generic /boot/vmlinuz-4.4.0-63-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-63-generic /boot/vmlinuz-4.4.0-63-generic
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.4.0-63-lowlatency
Found initrd image: /boot/initrd.img-4.4.0-63-lowlatency
Found linux image: /boot/vmlinuz-4.4.0-63-generic
Found initrd image: /boot/initrd.img-4.4.0-63-generic
Found linux image: /boot/vmlinuz-4.4.0-62-generic
Found initrd image: /boot/initrd.img-4.4.0-62-generic
Found linux image: /boot/vmlinuz-4.4.0-59-generic
Found initrd image: /boot/initrd.img-4.4.0-59-generic

Reboot the system:
$ sudo reboot
After reboot verify new kernel:
$ uname -mrs
Sample outputs:

Linux 4.4.0-63-generic x86_64

You can also use the following command to verify the same:
$ apt-cache policy linux-image-4.4.0-63-generic
Sample outputs:

  Installed: 4.4.0-63.84
  Candidate: 4.4.0-63.84
  Version table:
 *** 4.4.0-63.84 400
        400 xenial-proposed/main amd64 Packages
        100 /var/lib/dpkg/status

See this wiki page for more info.

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.