Assign highest priority to my local repository

Posted by Anwar Shah on Ask Ubuntu See other posts from Ask Ubuntu or by Anwar Shah
Published on 2012-05-11T05:11:23Z Indexed on 2012/06/12 10:48 UTC
Read the original article Hit count: 515

Original question was : "How to assign highest priority to local repository without using sources.list file"

I have setup a local repository with packages I downloaded. I use it to avoid downloading the same packages over the Internet, when I need to reinstall my Ubuntu. It is a basic repository, created with apt-ftparchive packages . > Packages. I made this a trusted repository to avoid "unauthenticated repository" warning. (When you have a untrusted repository, apt or synaptic try to download the same packages over the Internet, 'cause it is trusted).

I have been using this local repository for at least 1 years. But I have to always put my local repository line at the top of the sources.list file to use this. But this is annoying, since I must open a terminal and do some typing on it every time I reinstall Ubuntu, though there is a better tool software-properties-gtk. I cannot use this tool since it place the source line at the end of `sources.list.

And the real problem is that, the apt or synaptic always download a package from the source which is mentioned earlier, without inspecting whether the packages are already available in the local repository. So, I have no choice but to place the local source at the top of sources.list doing terminal (I actually don't hate terminal, but I need a solution) .

I have tried this method. But this does not help me.

My preference file is this in /etc/apt/preferences.d/local-pin-900

    Package: *
    Pin: release o=Local,n=ubuntu-local
    Pin-Priority: 900

My release file is this

    Origin: Local
    Label: Local-Ubuntu
    Description: Local Ubuntu Repository
    Codename: ubuntu-local
    MD5Sum:
     ed43222856d18f389c637ac3d7dd6f85          1043412 Packages
     d41d8cd98f00b204e9800998ecf8427e                0 Sources

When I enable the apt-preference, the apt-cache policy correctly shows the preference, e.g. It shows the local repository has the highest priority.

But when I do this sudo apt-get install <package-name>, apt tries to download it from Internet. But when I place my local-repo at the top, it installs from local repository.

So, My question is -> 'Is it possible to force apt to use local repository when the package is available in local repository, without explicitly placing "the local source" at the top of my repository list (e.g sources.list file) ?'

Edit: output of apt-cache policy $package_name is as follows

  
nautilus-wipe:
  Installed: (none)
  Candidate: 0.1.1-2
  Version table:
     0.1.1-2 0
        500 http://archive.ubuntu.com/ubuntu/ precise/universe i386 Packages
        900 file:/media/Main/Linux-Software/Ubuntu/Precise/  Packages

It is showing that my local repository has higher preference, though it is not the one which comes first in sources.list file.

Here is the output of apt-get install nautilus-wipe

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  nautilus-wipe
0 upgraded, 1 newly installed, 0 to remove and 131 not upgraded.
Need to get 30.7 kB of archives.
After this operation, 150 kB of additional disk space will be used.
'http://archive.ubuntu.com/ubuntu/pool/universe/n/nautilus-wipe/nautilus-wipe_0.1.1-2_i386.deb' nautilus-wipe_0.1.1-2_i386.deb 30730 MD5Sum:7d497b8dfcefe1c0b51a45f3b0466994

It is still trying to get the file from Internet, though I think it should be happy with the local one.

© Ask Ubuntu or respective owner

Related posts about apt

Related posts about synaptic