How to make USB drive as local repository

94,079

Solution 1

You should build a repository in a local directory and point a file: URI entry to your APT sources (see URI SPECIFICATION in man sources.list):

deb file:/home/user/repository

To make apt work, you need to create a list of packages (Packages.gz) for APT to consume. This is explained in detail here. For your case, it should be quite easy. I refer you to the "Trivial Repositories" section of the manual. It should be as easy as changing to, say, /home/user/repository and running

dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz

Then after a apt-get update, the packages should become available. Perhaps if you want to make this source take precedence over others, you need to assign it a higher priority; for that see the APT manual pages.

Solution 2

I don't think there is a way to add this as a repository but you can use it to install the packages by copying the contents to your /var/cache/apt/archives. To do this, press alt-f2, enter gksudo nautilus and do the copy. Once you have done, make sure you close the file manager window because it is not a good idea to use the file manager as root except for the tasks that absolutely require it.

To view/install these packages, run System -> Administration -> Synaptic Package Manager, click the 'Origin' button and choose 'Local' from the list.

In the future, you are better off using a program called aptoncd which can be installed from the repositories. It can be used to create a CD image that can be added as a software source. This image can be transported on a usb stick.

The easiest way to add the image as a software source is to burn it to a CD/DVD. You then need to go to System -> Administration -> Software Sources, click 'Other Software' and click 'Add CD-ROM...'.

If you want to use the ISO image as a software source without burning it, the process will be a bit more complicated. You will need to open a terminal Applications -> Accessories -> Terminal and run these commands:

sudo mkdir /aptoncd-mountpoint
sudo mount /media/USB/aptoncd.iso ~/aptoncd-mountpoint -oloop
sudo apt-cdrom -d=/aptoncd-mountpoint add

(source: http://www.debianhelp.org/node/10486)

If you want to download packages on one computer (Linux, Mac or Windows) and install them on an Ubuntu system, you can use keryx.

Solution 3

If you want to use a official CD / USB / ISO image from Ubuntu as repository, you can add this into /etc/apt/sources.list:

deb file:/media/usb xenial main restricted

first, you need to mount your image in /media/usb (for example) and change xenial for your image version.

The server edition only contains main and restricted, while the Desktop version additionally contains universe and multiverse.

My personal case:

After installing Ubuntu (in a server without internet), I forgot to tick the "OpenSSH server" box so the installation finished without it. I tried to dpkg -i openssh....deb but as it requires several dependencies, it was better to do it appropriately. At the end, the selected answer in this page helped me to find out how to use my image as repository and it worked without issues.

This can be useful if you are looking for a way to downgrade a package to an specific version included in an image.

Share:
94,079
Rojan
Author by

Rojan

Updated on September 17, 2022

Comments

  • Rojan
    Rojan over 1 year

    I copied "archives" folder (/var/cache/apt/archives) from another computer which was fully updated and had some packages that i want. Can someone guide me how to add my USB drive in repository list so that i can install those packages from it?

    Thanks.

  • loevborg
    loevborg over 13 years
    I don't think this is accurate. There is a file:// URI type. Making an iso image is really much too complicated for this simple task.
  • loevborg
    loevborg over 13 years
    n.b. the local directory in question can of course also be a USB drive, such as /media/usbdrive/repository
  • Dave
    Dave over 8 years
    I wrote a quick-and-dirty script that demonstrates a quick-and-dirty local repo: gist.github.com/linuxluser/3af5fd16dde41b82972a
  • Admin
    Admin over 7 years
    Welcome to AskUbuntu! Please consider expanding your answer, as link-only answers are not of great quality.
  • Evan Carroll
    Evan Carroll over 6 years
    I just get dpkg-scanpackages: error: binary directory binary not found