如何将USB驱动器设置为本地仓库

我从另一台已经完全更新并且有我想要的一些软件包的计算机上复制了“archives”文件夹(/var/cache/apt/archives)。有人可以指导我如何将我的USB驱动器添加到存储库列表中,以便我可以从中安装这些软件包吗?
谢谢。

6个回答

你应该在本地目录中建立一个仓库,并将一个file: URI条目指向你的APT源(请参阅man sources.list中的URI规范)。
deb file:/home/user/repository

为了使apt工作正常,您需要创建一个APT可以使用的软件包列表(Packages.gz)。这在这里有详细解释。对于您的情况来说,应该很容易。我建议您参考手册中的“简单仓库”部分。只需将路径更改为/home/user/repository,并运行相应命令即可。
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz

然后在执行apt-get update之后,这些软件包应该就可以使用了。如果你想让这个源优先于其他源,可能需要给它分配一个更高的优先级;具体操作请参考APT手册页面。

请注意,所提到的本地目录当然也可以是一个USB驱动器,例如/media/usbdrive/repository。 - loevborg
我写了一个简单粗糙的脚本,演示了一个简单粗糙的本地仓库:https://gist.github.com/linuxluser/3af5fd16dde41b82972a - Dave
1我刚刚遇到了dpkg-scanpackages: error: binary directory binary not found的错误。 - Evan Carroll

我不认为有一种方法可以将其添加为存储库,但您可以通过将内容复制到/var/cache/apt/archives来使用它来安装软件包。要做到这一点,请按下alt-f2,输入并进行复制。完成后,请确保关闭文件管理器窗口,因为除了绝对需要的任务外,使用文件管理器作为root用户是不明智的。
要查看/安装这些软件包,请运行System -> Administration -> Synaptic Package Manager,点击“Origin”按钮,然后从列表中选择“Local”。
在将来,最好使用一个名为aptoncd的程序,该程序可以从存储库中安装。它可用于创建一个可以添加为软件源的CD映像。 此映像可以传输到USB闪存驱动器上。
将映像添加为软件源的最简单方法是将其刻录到CD/DVD上。然后,您需要转到System -> Administration -> Software Sources,点击“Other Software”,然后点击“Add CD-ROM...”。
如果你想使用ISO镜像作为软件源而不烧录它,这个过程会稍微复杂一些。你需要打开终端应用程序 -> 配件 -> 终端,并运行以下命令:
sudo mkdir /aptoncd-mountpoint
sudo mount /media/USB/aptoncd.iso ~/aptoncd-mountpoint -oloop
sudo apt-cdrom -d=/aptoncd-mountpoint add

(来源:http://www.debianhelp.org/node/10486

如果你想在一台计算机上(Linux、Mac或Windows)下载软件包,然后在Ubuntu系统上安装它们,你可以使用keryx


1我不认为这是准确的。有一个 file:// URI 类型。制作一个 ISO 镜像对于这个简单的任务来说实在太复杂了。 - loevborg
2无法工作。它仍然试图挂载 /dev/sr0。 - int_ua

如果你想使用Ubuntu官方的CD / USB / ISO镜像作为软件源,你可以将以下内容添加到/etc/apt/sources.list文件中:
deb file:/media/usb xenial main restricted

首先,您需要将图像挂载到/media/usb(例如),并将xenial更改为您的图像版本。
服务器版仅包含mainrestricted,而桌面版还包含universemultiverse我的个人案例: 在安装Ubuntu时(在没有互联网的服务器上),我忘记勾选“OpenSSH服务器”框,因此安装完成后没有安装它。我尝试使用dpkg -i openssh....deb,但由于它需要几个依赖项,最好适当地进行操作。最后,在这个页面中选择的答案帮助我找到了如何使用我的图像作为存储库,并且它可以正常工作。
如果您想要将软件包降级到图像中包含的特定版本,这可能会很有用。

我曾经在寻找适用于Debian Jessie的相同内容,但偶然发现了这个网站,并发现这个帖子比其他帖子更有帮助。以下是一些适用于Ubuntu/Debian变种的可能有效的方法。

首先,您需要在文件管理器(可能是Nautilus)中挂载您的USB。通常情况下,它会自动挂载默认设置。

如@lepe所建议的那样,我编辑了/etc/apt/sources.list并在一些尝试后添加了以下行:

deb file:/media/your_username/DEBIAN\ 8_1_/dists/jessie jessie main contirb

它像魔法一样起作用。希望这能帮助到某人,尽管这篇帖子有点旧了。

你在USB驱动器中有软件包文件的备份副本(这些文件是你在另一台电脑上下载的)。在这种情况下,只需在你的主目录下创建一个文件夹,比如说ARCHbackUP。将USB中的所有文件复制到这个文件夹中,然后按照以下代码操作:
cd ~
sudo chown -R username:username ARCHbackUP/.
genisoimage -o ARCHbackUP.iso -R -J ~/ARCHbackUP
mv -u ./ARCHbackUP.iso ~/
sudo apt-get clean #cleans the /var/cache/apt/archives directory.
sudo mkdir /mnt/load_iso
sudo mount -o loop ARCHbackUP.iso /mnt/load_iso #mounts the iso archive.
cd /mnt/load_iso #taking you in the mounted directory.
sudo cp -r -n ./. /var/cache/apt/archives
cd ~
sudo umount /mnt/load_iso #unmount the mounted iso archive.
sudo rmdir /mnt/load_iso #deletes the mount point load_iso.

现在,您下载的所有软件包文件和更新都位于系统的apt-get install搜索路径中。现在打开终端,输入sudo apt-get install package_name以安装新软件包或sudo apt-get upgrade以离线更新已安装的软件包。



欢迎来到AskUbuntu!请考虑扩展您的回答,因为仅包含链接的回答质量不高。 - user308164