it-swarm.cn

如何在没有Internet(离线)的情况下安装软件或软件包?

我有一个朋友有一台没有连接到互联网的电脑。有没有办法轻松离线安装软件?

252
akshatj

退房 Keryx ;它是一个离线存储库管理器。

它是如何工作的?它允许你下载更新和新程序(带有依赖项)到你的闪存驱动器

它的接口类似于synaptic,但是它可以从pendrive工作(它不需要安装)。不幸的是,GUI需要wxwidgets,它们不会预装在Ubuntu上(它们是跨平台的,可以从 这里 和Ubuntu存储库 这里 )安装。它只能在Ubuntu系统中安装软件,但您可以在任何Linux,Windows或OS X中下载更​​新或新软件包。

在这里你可以找到 一个教程

另一个详细的分步教程是 这个答案

Launchpad还托管 可下载文件

截图:

Screenshoot

128
Javier Rivera

一个快速的黑客

快速入侵是将您下载的所有软件包复制到他的机器上( 详细说明 )。 .deb文件存储在/var/cache/apt/archives中,然后在另一台计算机上启动Synaptic并选择File -> Add Package Downloaded并搜索文件夹,如果您放置文件并打开它,接受全部(或使用命令Sudo dpkg -i DEB_PACKAGE_NAME从终端安装) )。

注:
这假设您的软件包管理器未设置为在安装后直接删除软件包。它还假设您运行相同版本的Ubuntu(10.10,12.04等)和架构版本(32b或64b)


DVD存储库

如果您需要最新的错误修复和安全补丁,请查看 本教程 ,其中包括创建您自己的DVD存储库。

57
jr0cket

USB存储库

如果你有一个体面的USB大小 - 假设大约4-8Gb(或外部硬盘)你可以设置Ub​​untu存储库的自定义副本,并将其配置为本地存储库,如 AptGet/Offline/Repository) on help.ubuntu.com。

要获取实际的包文件(.deb文件),我建议使用apt-mirror

apt-mirror包将帮助您创建一个自定义镜像,该镜像应小于完整存储库的30Gb。安装包:

Sudo apt-get install apt-mirror

并编辑其配置文件

gksudo gedit /etc/apt-mirror/mirror.list

或者从Ubuntu 14.04开始

gksudo gedit /etc/apt/mirror.list

仅包含所需的存储库部分。这是一个简单的示例,它复制了所有4个部分(main,restricted,universe和multiverse)中的二进制.deb文件以及最新的错误修复。

# apt-mirror configuration file
##
## The default configuration options (uncomment and change to override)
##
#
set base_path    /tmp/ubuntumirror
#

## Repositories to copy from - 

## use a mirror so you don't overload the main server!!!

# Lucid binaries - no source files
deb http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse


## Clean up older .deb files no longer in the archive
clean http://archive.ubuntu.com/ubuntu

据猜测,所有4个部分都需要大约15Gb的空间,没有源。

我已经将所有.deb文件的路径设置为/tmp,确保您有足够的空间,以便您的硬盘驱动器不会填满(如果您的硬盘驱动器已填满并且您的计算机冻结,/tmp应该通过重新启动清除) 。

如果您只想要主文件,请从配置文件中删除受限制的Universe和多重名称。

如果您使用的是其他架构(您有64位,但您的朋友有32位),那么在mirror.list配置的开头添加以下内容文件:

set defaultarch i386

获得所需的apt-mirror配置后,运行apt-mirror并继续做一些有趣或改变生活的事情,因为获取存储库需要数小时或数天(取决于您的连接和您正在使用的Ubuntu镜像)。

获得.deb文件后,将文件复制到USB记忆棒(或外部硬盘驱动器),并按照前面提到的文章设置本地存储库。

在把它带给你的朋友之前测试它是否有效!

40
jr0cket

我使用apt-get和“--print-uris”选项来做到这一点。我还添加“-qq”所以它会很安静。

使用sed删除添加到某些文件名中的额外字符(类似于3%2a)并获取文件的url,filename和md5sum。使用wget下载文件。使用md5sum检查文件是否正确下载。

您可以使用它来为Linux或Mac OS创建一个Shell脚本(在.sh的命令中替换“.cmd”并执行“chmod a + x(filename)以添加执行脚本的权限”)或Windows命令批处理文件和MD5Sum文件,以确保正确下载文件。

命令

创建脚本:

Sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > script.cmd

实施例:

Sudo apt-get install anjuta --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install-anjuta.cmd
Sudo apt-get upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > upgrade.cmd
Sudo apt-get dist-upgrade --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > dist-upgrade.cmd

创建md5sum文件:

Sudo apt-get <<<apt-get command and options>>> --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

实施例:

Sudo apt-get install anjuta --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
Sudo apt-get upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt
Sudo apt-get dist-upgrade --print-uris -qq | sed -n -e "s/_[0-9]%[0-9a-f][0-9a-f]/_/" -e "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/\4  .\/\2/p" > md5sum.txt

如果您使用该操作系统下载文件,则需要md5sum for Windows。


创建下载存储库列表的脚本:

Sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd

检查MD5总和

您可以将这些添加到脚本的末尾以检查md5sum:

Linux的:

md5sum --quiet -c md5sum.txt

Windows(使用较旧的md5sum,不支持--quiet):

md5sum -c md5sum.txt

要自动添加到脚本:

echo -e "md5sum -c md5sum.txt\npause" >> script.cmd

安装列表文件(更新命令)

将这些命令运行到目标计算机。

您需要使用bunzip2来提取存储库列表文件:

bunzip2 *.bz2

然后复制到列表文件夹(当前文件夹只包含列表文件):

Sudo cp * /var/lib/apt/lists/

以上组合(当前文件夹可能包含其他文件):

for listfile in `ls *.bz2`; do bunzip2 $listfile; Sudo cp ${listfile%.bz2} /var/lib/apt/lists/; done

更快的下载

如果您想更快地下载文件,请尝试使用Axel。

wget -c ... -O ...替换axel ... -o ...

文件夹层次结构(使用Windows下载文件)

我通常会创建一个这样的文件夹:

  • apt-get的/
    • 宾/
      • mSYS-1.0.dll
      • mSYS-INTL-8.dll
      • wget.exe
      • mSYS-的iconv-2.DLL
      • md5sum.exe
      • 的libeay32.dll
      • libintl3.dll
      • libssl32.dll
      • libiconv2.dll
    • 更新/
      • update.cmd的
      • md5sum.txt
    • 安装/
      • 安装-foo.cmd
      • 安装-bar.cmd
      • upgrade.cmd
      • md5sum.txt

然后将上面的行中的wget更改为..\\bin\\wget.exemd5sum更改为..\\bin\\md5sum.exe等。

这会将* .deb文件和列表文件分隔到不同的文件夹中。

更新您的系统

  1. 引导到使用Ubuntu的目标计算机
  2. 创建用于更新的脚本
  3. 启动到具有Internet连接的计算机
  4. 运行update.sh(适用于Linux或Mac OS)或update.cmd(Windows)
  5. 回到目标计算机
  6. 安装列表文件
  7. 为升级/ dist-upgrade创建脚本(添加md5sum命令结束)
  8. 回到带有互联网连接的电脑
  9. 运行upgrade.sh/dist-upgrade.sh(Linux或Mac OS)或upgrade.cmd/dist-upgrade.cmd(Windows)
  10. 回到目标计算机
  11. 将* .deb文件复制到缓存:Sudo cp *.deb /var/cache/apt/archives/
  12. 运行:Sudo apt-get upgradeSudo apt-get dist-upgrade

下载适用于Windows的可执行文件

Wget for Windows: http://gnuwin32.sourceforge.net/packages/wget.htm

适用于Windows的md5sum: http://gnuwin32.sourceforge.net/packages/coreutils.htmhttp://www.etree.org/cgi-bin/counter.cgi/software /md5sum.exe

您也可以使用 MinGW 中的那些,这是我使用的。您只需要wget.exe,md5sum.exe和必要的共享库。检查“文件夹层次结构”部分。

笔记

  • 我不完全确定上述所有命令是否都能正常工作,因为我现在还没有使用它们一个月。特别是更新命令,我今天没有测试它的某些部分。
  • 要轻松查看命令的结果,请在脚本末尾添加“暂停”行(如果使用Windows)。
  • 如果您经常使用这些命令,我​​建议创建Shell脚本来更新,升级和安装软件包。
32
Arnel A. Borja

您需要首先获得具有Internet连接的PC,您可以在其中下载所需的.deb文件。下载完所有文件后,您现在可以创建CD/DVD ROM或ISO文件,您可以使用它来安装在离线PC中下载的软件。

从干净安装或VM开始。
Sudo apt-get install aptoncd

在一台PC上安装所需的软件包
Sudo apt-get install gbrainy

运行aptoncd
enter image description here
单击“创建”
enter image description here
单击刻录并设置选项,然后单击应用
enter image description here
烧掉或保存
enter image description here

请注意,aptoncd仅备份当前apt-cache中的内容。
这就是为什么我们开始使用干净的VM /新安装并在一次运行中完成所有这些操作。

29
RobotHumans

离线存储库

如何创建一个脱机存储库 这里 :您只需从 archive.ubuntu.com 下载相应的文件。或者,您可以使用 apt-medium

编辑:基于*.deb文件的本地rchive的另一种方法在不同的博客条目中描述(参见 这里这里 )。 Sarath Chandra 总结如下:

  1. 使dir可访问(至少由root)

    Sudo mkdir /var/my-local-repo
    
  2. 将所有deb文件复制到此目录。

  3. 将目录设为

    Sudo bash -c 'dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz'
    

    要么

    Sudo dpkg-scanpackages /var/my-local-repo /dev/null | gzip -c9 > /var/my-local-repo/Packages.gz
    
  4. 将本地仓库添加到源

    echo "deb file:/var/my-local-repo ./" > /tmp/my-local.list
    Sudo mv /tmp/my-local.list /etc/apt/sources.list.d/my-local.list
    Sudo apt-get update
    
22
tohuwawohu

第1步:获取文件中的下载URL:

执行以下命令,用所需的命令替换package-names,用空格分隔。

apt-get -y install --print-uris package-name | cut -d\' -f2 | grep http:// > apturls

步骤2:将此文件(apturls)复制到具有高速Internet访问权限的计算机上,并执行以下命令以下载程序包:

wget -i path-to-apturls-file 

第3步:现在将下载的软件包下载到您的计算机上,并使用以下方法安装它们

cd path-to-the-downloaded-packages-directory

Sudo dpkg -i *.deb

完成!

19
harisibrahimkv

你可以使用Cube。它是一个便携式软件包管理器,允许您在另一台连接Internet的计算机上下载软件包,并将它们安装回原始Linux计算机,脱机。

下载应用程序(在Windows上) 

安装应用程序(在Linux上) 

你可以在 Cube 的网站上下载。

18
Camicri

在synaptic中,您可以选择要安装的软件包,在第一个菜单下有一个选项可以生成一个脚本,您可以将该脚本带到另一台机器并在那里运行。此脚本将“wget”(即“下载”)您指定的所有程序包(及其依赖项),这些程序包在确实具有Internet访问权限的计算机上运行。

一旦运行,您将拥有断开连接的计算机所需的所有包文件。将它们放在CD/USB记忆棒上,然后通过Sudo dpkg -i *.deb进行安装。

17
popey

您可以使用apt-offlineapt-offline-gui
Pre-requistes:一个有互联网连接的朋友的系统。在您的系统中安装了apt-offline。

脱机安装只需3个简单步骤即可完成。

第1步
在家中的Disconnected Debian框中生成签名文件
apt-offline set /tmp/apt-offline.sig
以上命令将生成apt所需的有关更新其数据库的所有信息。

第2步
根据之前生成的签名文件下载数据
apt-offline get C:\apt-offline.sig --threads 5
上述命令将下载签名文件中提到的数据。为了加快下载速度(可以来自多个apt存储库),在这个例子中我们产生了5个下载线程。
完成后,您可以将数据(存档文件,如果您使用--bundle选项)复制回可移动媒体并将其复制回离线主机。

第3步
一旦你回到家用Debian机器,你就可以将数据从可移动媒体提供给apt-offline:
apt-offline install /media/USB/apt-offline.Zip
这将无缝更新断开连接的机器上的APT数据库。

Apt-offline甚至可以在Windows系统中使用。在我看来,apt-offline是离线安装的最佳选择。

来源

15
Hashken

上面列出了几个好的,有效的答案。但是,这是我个人使用的机制 - apt-ftparchive 。我在这里记录它,以防我将来再次需要它。也许它可能对你有用。

创建存档快照

  • 创建一个非常类似于目标环境的Ubuntu实例
    • 例如,亚马逊中的Ubuntu 12.04 64位实例
  • 从干净的包装环境开始
    • Sudo apt-get clean
  • 更新包裹清单
    • Sudo apt-get update
  • 下载所有可用的软件包更新
    • Sudo apt-get dist-upgrade --download-only
  • 下载所有相关的包和依赖项
    • Sudo apt-get install --download-only byobu run-one bikeshed dotdee powernap
  • 安装apt-ftparchive实用程序
    • Sudo apt-get install apt-utils
  • 创建包清单
    • (cd /var/cache/apt/archives/ && Sudo apt-ftparchive packages . ) | Sudo tee /var/cache/apt/archives/Packages
  • 创建包的存档
    • Sudo tar cvf snapshot.tar -C /var/cache/apt archives/

在脱机目标系统上使用归档快照

  • 通过某种机制,您需要将snapshot.tar从源系统获取到目标系统。也许在USB记忆棒上或其他方面。
  • 提取目标系统上的存档(在本例中,在/home/ubuntu中)[。_____。]
    • tar xvf snapshot.tar
  • 将本地离线源添加到/etc/apt/sources.list 。
    • echo "deb file:/home/ubuntu/archives /" | Sudo tee -a /etc/apt/sources.list
  • 更新包裹清单
    • Sudo apt-get update
  • 根据需要安装包
    • Sudo apt-get install byobu run-one bikeshed dotdee powernap
10
Dustin Kirkland

对于离线安装,您将需要这些包。如果您使用的是Debian系统

  • 获取包含.deb文件扩展名的包文件,并使用dpkg -i package_name进行安装
  • 使用.tar.gz.tar.bz2文件扩展名获取源tarball,然后使用以下命令提取并安装它们:

    tar -zxvf your_pack.tar.gz` or tar `-jxvf your_pack.tar.bz2
    make
    Sudo make install
    make clean        (optional, and may prevent uninstallation)
    

您可能遇到依赖项问题。您需要先安装所有这些才能成功进行脱机安装。

4
Harshit Chaudhary

在脱机软件包安装之前,您可以做的第一件事是更新所需的存储库/存储库。您应该确定更新Main存储库(免费和官方支持的软件)。

您要安装的应用程序可能位于其他一些存储库中,如niverse(免费但没有官方支持),或受限制(非免费,官方支持) ,或Multiverse(非自由,无官方支持)存储库。所以你可能也想要其中一个或多个。

因此,该过程的第一步是构建更新的脱机存储库;然后生成“下载”列表并下载它们,最后是insatllation。以下是它的完成方式: 源极

  1. 输入网址: http://archive.ubuntu.com/ubuntu/dists/ suiteCodename where suiteCodename应该适当替换为Ubuntu 12.04(精确穿山甲)[或utopic为Ubuntu 14.10(Utopic)说精确独角兽)]所以你现在在 http://archive.ubuntu.com/ubuntu/dists/precise/ 或任何其他特定的套房中。

  2. 下载文件发布Release.gpg,和内容 - ????。gz文件为您的架构(即Contents-i386.gz,假设您的架构是i386)。将这三个文件保存在以suiteCodename命名的目录/文件夹中(精确用于精确穿山甲)。

  3. 接下来,您将需要为每个存储库执行以下操作(在Main,Universe,Restricted,Multiverse之中)。

    一个。转到目标存储库目录,例如。 main然后到架构目录,例如。 binary-i386这样你就可以在 http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary- ???? /

    湾下载内容Packages.bz2,Packages.gz,Release并将它们保存在以repositoryName命名的目录中,例如。 main并将此目录放在先前创建的suiteCodename目录中。

    c。重复一次。和b。对于您想要的每个存储库。

  4. 最后你应该有这样的结构:

     precise
     ├── Contents-i386.gz
     ├── main
     │   └── binary-i386
     │       ├── Packages.bz2
     │       ├── Packages.gz
     │       └── Release.txt
     ├── Release.gpg
     ├── Release.txt
     └── universe
         └── binary-i386
             ├── Packages.bz2
             ├── Packages.gz
             └── Release.txt
    

    (假设你的suiteCodename =精确,架构是i386,你需要主存储库和Universe存储库)

  5. 接下来,在下载更新的存储库之后,您将下载的文件以适当的结构(如上所示)排列在目标脱机计算机的目录中。将目录结构precise保存在用户主目录(~/offlineRepository/dists/precise)中名为offlineRepository/dists/precise的文件夹中或其他任何地方(/home/offlineRepository/dists/precise使用终端中的Sudo previleges或使用gksu nautilus启动Nautilus文件管理器) ;还要确保您对复制的结构具有正确的权限。您的离线存储库信息随时可供使用。

  6. 源列表中添加 本地存储库。使用Ubuntu软件中心,转到编辑 - >软件源... - >其他软件 - >添加...然后在APT行,添加:deb file:///home/offlineRepository precise main universe并单击添加源。请务必修改目录/文件结构和套件的行。然后重新加载包或在终端中运行Sudo apt-get update。 snap1

  7. 现在有了更新的(也可能是新添加的存储库),您可以转储包和依赖项的URL列表。

    我从之前的askUbuntu帖子中借用了以下代码:

    Sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    

    例如。安装Synaptic Package Manager:

    Sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
    

    (您也可以以类似的方式生成更新列表。)

    生成的列表可用于在在线计算机上下载软件包和整个依赖项。在某些下载管理器中创建一个脚本以下载或使用该列表进行批量下载。 (另请注意,生成的文本文件使用Unix/Linux行结尾,您可能希望将其更改为Windows。)当Synaptic Package Manager是一个时,以前有一种更简单的方法。 Ubuntu中的默认应用程序。

  8. 最后,在目标系统中,您可以使用dpkg或使用任何其他方式安装软件包。

获取更新的包数据库,包括安全更新

除了上面的解释,以下结构应该给你一个想法:

/opt/offlineRepoList/
└── dists
    ├── precise
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release.txt
    │   ├── Release.gpg
    │   ├── Release.txt
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release.txt
    ├── precise-security
    │   ├── Contents-i386.gz
    │   ├── main
    │   │   └── binary-i386
    │   │       ├── Packages.bz2
    │   │       ├── Packages.gz
    │   │       └── Release
    │   ├── Release
    │   ├── Release.gpg
    │   └── universe
    │       └── binary-i386
    │           ├── Packages.bz2
    │           ├── Packages.gz
    │           └── Release
    └── precise-updates
        ├── Contents-i386.gz
        ├── main
        │   └── binary-i386
        │       ├── Packages.bz2
        │       ├── Packages.gz
        │       └── Release
        ├── Release
        ├── Release.gpg
        └── universe
            └── binary-i386
                ├── Packages.bz2
                ├── Packages.gz
                └── Release
2
precise

对于始终保持脱机的系统,通常最好使用其他一些答案中提供的强大的脱机包管理方法之一。这是因为它们有助于保持已安装的软件包最新,而不是仅仅安装一些软件包。

但是,对于您只想在没有Internet连接的系统上快速安装软件包的独立情况(并且您可以在另一台计算机上下载它们并将它们带过来),您可以这样做。主要的复杂因素是确定您需要什么,因为包通常包含其依赖的其他包,因此必须在安装包之前或同时安装。

这个答案是由重复的问题 g ++ in Ubuntu 14.04 推动的,并使用需要安装g++作为核心示例的情况。

我强调这种方法不应该长期用作至少有助于自动确定和安装所需安全更新的替代方法。永远不要连接到网络可以大大减少攻击的可能性,但是可以通过任何来源的数据利用一些安全漏洞。

虽然这种方法看起来很复杂,但通常只需要几分钟。对于具有大量依赖项的包,可能需要更长时间。对于安装引入大量依赖项的元数据包(例如,在最小系统上的ubuntu-desktop),下载所有必需的.deb文件可能需要更长的时间,并且此方法不太适合。

确定所需的依赖关系

您可以模拟安装以确定需要哪些其他包来满足包的依赖性。将-s标志传递给apt-get之前指定任何操作)执行此操作。

apt-get -s install g++

我省略了Sudo,因为这只是一个模拟,所以不需要root权限。

如果您确实想要安装所有最常用的工具来构建软件包,而不仅仅是g++,您可能更喜欢:

apt-get -s install build-essential

输出(对于g++)将如下所示:

NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  g++-4.8 libstdc++-4.8-dev
Suggested packages:
  g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg
  libstdc++-4.8-doc
The following NEW packages will be installed:
  g++ g++-4.8 libstdc++-4.8-dev
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Inst libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [AMD64])
Inst g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [AMD64])
Inst g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [AMD64])
Conf libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [AMD64])
Conf g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [AMD64])
Conf g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [AMD64])

这就是说要在我的系统上安装g++,我需要包g++g++-4.8libstdc++-4.8-dev

通过模拟的结果通常比仅查找包的依赖性(或假设您需要的内容与上面相同)更好,因为:

  1. 您可能已经安装了一些依赖项。
  2. 依赖项(即,程序包需要安装或工作的其他程序包)本身可能具有您尚未安装的依赖项。

获得包裹

一旦知道了所需的软件包,就可以下载它们。我建议使用Launchpad,因为下载是SSL加密的,这有助于防止文件损坏。

  • 这不仅是防止恶意方故意操纵的保障措施;它还有助于防止意外的文件损坏,这是下载文件的一个更常见的问题。
  • 有一种它无法阻止:当文件仅部分下载但您认为它已完成时。
  • 通常使用apt-get或软件中心安装软件包不需要HTTPS,因为它的哈希是针对经过数字签名的哈希列表进行验证的。如果您最终将这些包放在包缓存中并使用apt-get来安装它们,那么就会发生这种情况。
  • 但是如果您最终必须使用dpkg -i安装手动下载的软件包,那么将无法完成。

您可以通过在包裹下的 https://launchpad.net/ubunt 下键入其名称来搜索包裹,然后单击“找一个包裹。“例如,搜索g++-4.8会带您进入 gcc-4.8源包页面

然后向下滚动到Ubuntu版本的代号。你正在运行14.04,所以那是Trusty Tahr。列出所有Ubuntu版本的代号 在发布维基页面上 。单击向右指向的三角形以查看其下载包。

screenshot showing the rightward facing triangle with which one expands a release to see downloads for it

对于某些包,您可以从多个口袋扩展下载列表。你可能会看到:

  • release,Ubuntu版本附带的软件包版本(或在发布时可用);
  • 安全性,发布后发布的安全更新;
  • 更新,发布后发布的任何更新;
  • 建议,可以安装的更新,但仍在测试中,不建议用于一般用途;
  • backports,软件源于后来的Ubuntu版本,并为早期版本重建。

例如,这是14.04中适用于Firefox的内容:

Launchpad screenshot showing expandable selections of package downloads for multiple pockets in the same release

通常你会想要security的包更新(如果它们存在),否则包中的发布

展开包列表后,找到适用于您的体系结构的.deb文件。 debs名为name_version_architecture.deb。最常见的架构是:

  • 64位PC/Mac(称为AMD64,适用于Intel和AMD处理器)
  • 32位PC/Mac(称为i386,也适用于两者)

例如,要获取64位版本的Ubuntu的g++-4.8包,可以下载g++-4.8_4.8.4-1ubuntu15_AMD64.deb

安装包

如果您检索的包是相同的版本apt-getinstall操作将自动检索和安装(如果您的系统是网络连接的),那么您可以将包放在/var/cache/apt/archives中并只是运行该命令:

Sudo apt-get install g++

如果这个系统是从不连接到Internet,那么当你检索的所有包都来自版本时,可能会出现这种情况 口袋。无论系统是否曾连接到互联网,如果在Launchpad上没有显示任何其他口袋中的包装,也几乎总是如此。 (基本上唯一的情况是,如果您安装了alpha或beta系统并且从未更新过它。)

在安装g++的特定情况下,我会使用apt-get

如果它不起作用或您不希望它,请通过将它们放在一个空的文件夹中并运行来安装它们:

Sudo dpkg -Ri /path/to/folder

或者您可以单独命名包。这个例子假设包在当前目录中(即,你cded到包含它们的目录):

Sudo dpkg -i package1.deb package2.deb ...

除非安装的软件包数量非常小,否则您知道需要安装的确切顺序以满足依赖关系,使用这些方法比使用这些方法要高效得多单独手动安装每个包。

2
Eliah Kagan

浏览完这里的答案后: 如何在没有Internet的情况下安装软件或软件包(离线)? ,我发现Arnel A. Borja的这段代码最有用。

Sudo apt-get install PACKAGE --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh


无论如何,这里有一些完整新手的说明。我希望你会发现它们很有用。

Ubuntu 15.10+新手的完整下载说明:

  1. 打开终端(快捷键CTRL + ALT + T)
  2. 使用以下命令导航到您希望将程序包下载到的文件夹:[。_____。]

    cd FOLDERNAME
    (示例:cd Desktop
    提示:您还可以使用dir命令列出文件夹。

  3. 在说明上方的代码中,将PACKAGE替换为您要下载的软件包。
  4. 复制并粘贴修改后的代码(快捷键CTRL + SHIFT + V),然后按Enter键

    下载Synaptic Package Manager的示例代码:
    Sudo apt-get install synaptic --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh

    下载VLC播放器的示例代码:
    Sudo apt-get install vlc --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh

  5. 如果询问,请输入root密码,然后按Enter键。 (如果没有显示密码的字符,请不要惊慌。这只是一种安全措施。)
  6. 现在应该生成“install.sh”文件。所需的所有依赖项都包含在脚本中。
  7. 现在我们需要使用以下命令运行脚本:
    sh install.sh
  8. 等待下载文件
  9. 之后,您可以使用此命令安装文件夹中的所有包:[。_____。]

    Sudo dpkg -i *.deb

    或者您可以使用像Synaptics这样的程序来安装软件包。 (Synaptics:文件 - 添加下载的软件包)
    或者,您也可以双击文件。这将打开Ubuntu软件中心。加载软件中心后,按安装按钮。重复此操作,直到安装文件夹中的所有文件。

2
GSM-S

是。您可以下载DVD iso,将其刻录在DVD上,然后从DVD安装软件。 见这里 CD和DVD可以像在线档案一样作为包管理者的来源提供。

2
txwikinger

如果你没有任何连接到互联网,并且没有任何人可以连接到互联网,那么有一个选项尚未提及:有人通过常规帖子发送源文件。

您可以通过支付DVD来通过邮件获得整个Ubuntu操作系统。同样地,您可以要求在线朋友向您发送DEB文件甚至VLC等包的源文件。虽然让某人发送包含所有包的完整DVD可能是值得的。这样你就可以从那张DVD上安装它。

1
Rinzwind

我有一个小的python脚本,可以在Windows上运行,解析ubuntu包网站,找到依赖树,下载所有需要的包+做校验和验证。

这可能显然下载超过需要,但对我来说是最简单的解决方案。

https://Gist.github.com/Zitrax/2bad212a3b0571357e1b

然后可以使用dpkg -i E pkg\*安装所有下载的软件包。它避免重新安装已安装的软件包。

用法:

usage: ubuntu-deps.py [-h] [-a Arch] [-r RELEASE] [-m MIRROR] [-f FALLBACK] [-d DIRECTORY] dep [dep ...]

Download ubuntu dependencies

positional arguments:
  dep                                  The main/top package

optional arguments:
  -h, --help                           show this help message and exit
  -a Arch, --Arch ARCH                 The architecture to use (default: AMD64)
  -r RELEASE, --release RELEASE        Ubuntu release (default: trusty)
  -m MIRROR, --mirror MIRROR           Mirror to use for download (default: http://no.archive.ubuntu.com/)
  -f FALLBACK, --fallback FALLBACK     Mirror to use when main mirror is not found (default:
                                       http://security.ubuntu.com/)
  -d DIRECTORY, --directory DIRECTORY  Target directory (default: pkg)
1
Zitrax

我建议 自定义Live CD 并安装它们。

你也可以下载文件 http://packages.ubuntu.com/文件名,但是你必须付钱注意依赖性。

0
Jakob

这不是一个完全详细的答案,但在很高的层次上你可以:

  1. 获取所需的.deb pkgs(并创建它们的列表)(包括它们所依赖的尚未安装的包)
  2. 创建一个包含它们的apt存档
  3. 将apt存档复制到CD或USB
  4. 将CD或USB插入目标系统
  5. 在目标系统上配置apt以包含CD或USB apt存档作为源
  6. 使用apt-get install(列表中的pkgs)从列表中安装软件包
0
kyleN

另一种可能性是使用remastersys。此工具允许您从您自己的系统制作iso映像,并在通过unetbootin创建可启动的usb棒后,您可以将自定义系统安装到您想要的任意数量的计算机上。

0
dago

这个问题有点旧,所以此时的答案可能是多余的,但也许您也可以尝试使用 dpkg-offline 。安装bzr,然后:

bzr branch lp:dpkg-offline

那里有一个教程和一个自述文件。

假设您要在Ubuntu 14.04 AMD64系统上安装git,即使您的系统是12.04 i386,你可以:

  • 下载ubuntu-14.04-desktop-AMD64.iso映像
  • 运行dpkg-offline ubuntu-14.04-desktop-AMD64.iso git
  • 您将获得可以传输到目标系统的tar.gz,它将包含种子包(git)及其所有依赖项。它还包括一个用于添加本地存储库的帮助程序脚本,因此您可以使用apt-get来安装程序包。

dpkg-offline将适用于10.04以后的任何Ubuntu桌面版本(我没有测试过旧版本,但他们应该也可以使用) Ubuntu服务器版本从12.10开始。无论主机架构如何,它都应该与AMD64,i386和armhf映像一起使用。同样,我没有使用arm64或powerpc/ppc64el进行测试,但它们也可以工作。

免责声明:我写了dpkg-offline。

0
roadmr

一些软件包安装在安装usb-stick上。我卸载network-manager并想再次安装它。

因此,我从(Lubuntu 17.10)安装了操作系统。这是/dev/sdb

将摇杆安装在路径上(在我的情况下为/tmp/mnt

mkdir /tmp/mnt
Sudo mount /dev/sdb1 /tmp/mnt

然后,我编辑/etc/apt/sources.list只包含

deb file:///tmp/mnt/ main universe

然后,我做

Sudo apt-get update

我可以安装network-manager

注意:这可能不是上述问题的答案,而是我在查找这个问题时遇到的问题。

0
User

我有几个简单的建议。你可以去图书馆。在计算机部分查找您想要的操作系统,其中一些书中有DVD。此外,如果您想要最新的操作系统,我会建议您在这个网站上购买DVD,只需象征性的费用。 www.ubuntu.com/download/desktop。

0
BJsgoodlife