Answers:
退房Keryx ; 这是一个离线存储库管理器。
它是如何工作的?它使您可以将更新和新程序(具有相关性)下载到闪存驱动器。
它的界面类似于突触,但可通过Pendrive进行操作(不需要安装)。不幸的是,GUI需要wxwidgets,它们没有预装在Ubuntu上(它们是跨平台的,可从此处和Ubuntu仓库在此处安装)。它只能在Ubuntu系统中安装软件,但是您可以在任何Linux,Windows或OS X中下载更新或新软件包。
在这里您可以找到一个教程。
此答案中还有另一个详细的分步教程。
Launchpad还托管可下载的文件。
屏幕截图:
keryx
毫无问题地使用它,尽管它显然需要进一步的开发和改进。
一个快速的黑客是所有您安装到自己的机器下载(包复制详细的说明这里)。.deb文件存储在中/var/cache/apt/archives
,然后在另一台计算机上启动Synaptic,然后选择File -> Add Package Downloaded
并搜索文件夹(如果您放置文件并打开它),接受所有文件(或使用命令从终端安装sudo dpkg -i DEB_PACKAGE_NAME
)。
注意:
这假定您的软件包管理器未设置为在安装后立即删除软件包。它还假定您正在运行相同版本的Ubuntu (10.10、12.04等)和体系结构版本(32b或64b)。
DVD资料库
sudo apt-get update
它将无法很好地工作,但是在设置新系统时仍然可以节省大量时间:)
/var/cache/apt/archives
到第二个只能下载〜250Mb。尽管如此,您仍需要连接才能运行安装。
apt-get update
如果您复制,则不需要/var/lib/apt/lists
-该目录包含由下载的存储库信息apt-get update
。
.deb
来我usb
的/var/cache/apt/archives
。在另一台计算机上,我只打开了USB驱动器,然后双击,.deb
它启动了Ubuntu GUI Software Updater
。容易偷懒。
/var/cache/apt/archives
,其已?安装Debian的时候(内置)谈到。理由为什么我问这是4.8 GB的方式,对于我的USB驱动器是4 GB太大。
USB存储库
如果您拥有大小合适的USB记忆棒-假设约为4-8Gb(或外部硬盘驱动器),则可以设置Ubuntu存储库的自定义副本,并将其配置为本地存储库,如help.ubuntu上的AptGet / Offline / Repository所述 。 .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个部分(主要,受限,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
据估计,所有这四个部分将需要约15Gb的空间,而没有源。
我已经放置了所有.deb文件的路径/tmp
,请确保您有足够的空间,以便硬盘驱动器不会填满(如果硬盘驱动器填满了并且计算机死机,/tmp
则应重新启动以清除它)。
如果只需要主文件,请从配置文件中删除受限的,Universe和multiverse名称。
如果您使用的是其他体系结构(您使用的是64位,而您的朋友使用的是32位),请在mirror.list配置文件的开头添加以下内容:
set defaultarch i386
有了所需的apt-mirror
配置后,即可运行apt-mirror
并执行一些有趣的事情或改变生活,因为获取存储库将需要数小时或数天的时间(取决于您的连接和所使用的Ubuntu镜像)。
获得.deb文件后,将文件复制到USB记忆棒(或外部硬盘驱动器)中,并按照前面提到的文章设置本地存储库。
在将其带给您的朋友之前先对其进行测试!
sudo apt-get install apt-mirror
直接在桌面版/ Rufus / USB记忆棒/试用模式的Ubuntu 16.10(Yakkety Yak)上尝试时,我得到了“ E: Unable to locate package apt-mirror
”。已通过验证到Internet连接ping
。
sudo apt-get update
并不能解决问题。
我将apt-get与“ --print-uris”选项一起使用。我还添加了“ -qq”,所以它很安静。
使用sed删除添加到某些文件名(例如3%2a)中的多余字符,并获取文件的url,文件名和md5sum。使用wget下载文件。使用md5sum检查文件是否正确下载。
您可以使用它来为Linux或Mac OS创建外壳程序脚本(将命令中的“ .cmd”替换为.sh,并执行“ chmod a + x(文件名)以添加执行脚本的权限)”或Windows Command批处理文件以及一个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
如果您使用的是Windows操作系统,则需要md5sum来下载文件。
创建脚本以下载存储库列表:
sudo apt-get update --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) :/wget -c \1 -O \2.bz2/p" > update.cmd
您可以将这些添加到脚本的末尾以检查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 ...
。
我通常创建一个像这样的文件夹:
然后wget
在上面的行中更改为..\\bin\\wget.exe
,md5sum
到..\\bin\\md5sum.exe
等。
这会将* .deb文件和列表文件分隔到不同的文件夹中。
sudo cp *.deb /var/cache/apt/archives/
sudo apt-get upgrade
或sudo apt-get dist-upgrade
Windows的Wget:http://gnuwin32.sourceforge.net/packages/wget.htm
适用于Windows的md5sum:http://gnuwin32.sourceforge.net/packages/coreutils.htm或http://www.etree.org/cgi-bin/counter.cgi/software/md5sum.exe
您也可以使用MinGW的功能,这就是我使用的功能。您只需要wget.exe,md5sum.exe和必要的共享库。检查“文件夹层次结构”部分。
-qq
选项似乎禁止来自的所有输出apt-get update
。我想你真的不想要这个选项。
首先需要获得一台具有Internet连接的PC,然后可以在其中下载所需的.deb文件。下载完所有文件后,您现在可以创建CD / DVD rom或ISO文件,可用于安装在脱机PC中下载的软件。
从全新安装或VM开始。
sudo apt-get install aptoncd
将所需的软件包安装在一台PC上
sudo apt-get install gbrainy
运行aptoncd
单击创建
单击刻录并设置选项,然后应用
刻录或保存
请注意,aptoncd仅备份当前apt-cache中的内容。
这就是为什么我们从全新的VM /新安装开始,然后一次运行所有这些。
这里描述了如何创建脱机存储库:您只需要从archive.ubuntu.com下载适当的文件。或者,您可以使用apt-medium
。
编辑:*.deb
在不同的博客条目中描述了基于文件本地rchive的另一种方法(请参阅此处和此处)。Sarath Chandra总结如下:
使目录可访问(至少由root用户访问)
sudo mkdir /var/my-local-repo
将所有deb文件复制到该目录。
将目录设为
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
将本地仓库添加到源
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
第1步:获取文件中的下载URL:
执行以下命令,用所需的软件包名称替换软件包名称,并用空格分隔。
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
做完了!
--print-uris
打印系统中已经安装的依赖项?
您可以使用Cube。它是便携式软件包管理器,可让您在另一台与Internet相连的计算机上下载软件包,然后离线将其安装回原始Linux计算机。
下载应用程序(在Windows上)
安装应用程序(在Linux上)
您可以在Cube的网站上下载它。
在synaptic中,您可以选择要安装的软件包,并在第一个菜单下有一个生成脚本的选项,您可以将该脚本带到另一台计算机上并在该计算机上运行。这个脚本会“wget的”指定你想要(和它们的依赖),你在计算机上运行(即“下载”)所有的包确实有互联网接入。
运行后,您将拥有断开连接的计算机所需的所有软件包文件。将它们放在CD / USB记忆棒上,并通过进行安装sudo dpkg -i *.deb
。
curl
/ wget
副本到一些外部媒体上的内容
您可以使用apt-offline
或apt-offline-gui
。
先决条件:具有互联网连接的朋友的系统。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 install /media/USB/apt-offline.zip
就将数据从可移动介质中馈送到apt-offline:这将无缝地更新断开连接的机器上的APT数据库。
Apt-offline甚至可以在Windows系统中使用。我认为,这apt-offline
是脱机安装的最佳选择。
上面列出了几个好的有效答案。但是,这是我个人使用的机制-apt-ftparchive。我在这里记录它,以备将来再次使用时使用。也许对您有用。
创建存档快照
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
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/
在脱机目标系统上使用存档快照
tar xvf snapshot.tar
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
对于离线安装,您将需要这些软件包。如果您使用的是Debian系统
.deb
文件扩展名的软件包文件并用于dpkg -i package_name
安装 获取带有.tar.gz
或.tar.bz2
文件扩展名的源压缩包,然后使用以下命令解压缩并安装它们:
tar -zxvf your_pack.tar.gz` or tar `-jxvf your_pack.tar.bz2
make
sudo make install
make clean (optional, and may prevent uninstallation)
您可能对依赖项有疑问。您需要先安装所有这些组件,然后才能成功进行脱机安装。
是。您可以下载DVD iso,将其刻录在DVD上,然后从DVD安装软件。可以在这里看到 CD和DVD可以作为包管理器的来源,就像在线存档一样。
在脱机软件包安装之前,您可以做的第一件事就是更新所需的存储库。您应该肯定喜欢更新主存储库(免费和官方支持的软件)。
您要安装的应用程序可能位于其他一些存储库中,例如Universe(免费,但没有官方支持),Restricted(非免费,但没有官方支持)或Multiverse(非免费,没有官方支持)存储库。 。因此,您可能也想要其中一个或多个。
因此,该过程的第一步是构建更新的脱机存储库。然后生成“要下载”列表并下载它们,最后是安装。这是完成的方式:源
输入网址:http://archive.ubuntu.com/ubuntu/dists/ suiteCodename其中suiteCodename应适当substituded说精确的Ubuntu 12.04(精确穿山甲)或乌托邦的Ubuntu 14.10(乌托邦独角兽),这样你会现在位于http://archive.ubuntu.com/ubuntu/dists/precise/或您拥有的套件中的任何其他特定目录中。
下载适用于您的体系结构的文件Release,Release.gpg和Contents-????。gz文件(即Contents-i386.gz,假设您的体系结构是i386)。将这三个文件保存在以suiteCodename命名的目录/文件夹中(精确用于穿山甲)。
接下来,您必须对所需的每个存储库(在Main,Universe,Restricted,Multiverse中)执行以下操作。
一种。转到目标存储库目录,例如。主要,然后到架构目录,例如。binary-i386,这样您就可以进入http://archive.ubuntu.com/ubuntu/dists/suiteCodename/repositoryName/binary-????/
b。下载内容Packages.bz2,Packages.gz,发行版并将其保存在以repositoryName命名的目录中,例如。main并将此目录放置在先前创建的suiteCodename目录中。
C。重复一个 和b。针对您想要的每个存储库。
最后,您应该具有以下结构:
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存储库)
接下来,在下载了更新的存储库之后,将下载的文件以适当的结构(如上所示)放置在目标脱机计算机的目录中。将目录结构保存在用户主目录()或其他任何位置precise
中的名为offlineRepository / dists / precise的文件夹中~/offlineRepository/dists/precise
(/home/offlineRepository/dists/precise
在终端中使用sudo特权或以Nautilus文件管理器开头gksu nautilus
;还请确保您具有复制结构的正确权限) 。然后,您的脱机存储库信息就可以使用了。
在您的源列表中添加本地存储库。使用Ubuntu Software Center,转到编辑->软件源...->其他软件->添加...,然后在APT行的字段中添加:deb file:///home/offlineRepository precise main universe
,然后单击添加源。确保修改有关目录/文件结构和套件的行。然后重新加载软件包或sudo apt-get update
在终端中运行。
现在有了更新的(可能还有新添加的存储库),您可以转储软件包和依赖项的URL列表。
我从上一则askUbuntu帖子中借用了以下代码行:
sudo apt-get install packageName --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
例如。安装Synaptic软件包管理器:
sudo apt-get install synaptic --print-uris | grep -o '\'http.*\' | tr "\'" " " > /tmp/package-list.txt
(您也可以以类似方式生成更新列表。)
生成的列表可用于在在线计算机上下载软件包和整个依赖项。在某些下载管理器中创建脚本以下载或使用列表进行批量下载。(还请注意,生成的文本文件使用Unix / Linux行尾,并且您可能希望将其更改为Windows。)当Synaptic Package Manager是Ubuntu中的默认应用程序时,以前有一种更简单的方法。
最后,在目标系统中,您可以使用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
在浏览完以下内容的答案后:如何在没有Internet(离线)的情况下安装软件或软件包?,我发现Arnel A. Borja的这段代码最有用。
sudo apt-get install PACKAGE --print-uris -qq | sed -n "s/'\([^ ]\+\)' \([^ ]\+\) \([^ ]\+\) MD5Sum:\([^ ]\+\)/wget -c \1/p" > install.sh
无论如何,这是一些针对新手的说明。我希望您会发现它们有用。
cd FOLDERNAME
(例如:cd Desktop
)
提示:您还可以使用dir
命令列出的文件夹。
下载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
sh install.sh
sudo dpkg -i *.deb
或者,您可以使用Synaptics之类的程序来安装软件包。(突触:文件-添加下载的软件包)
或者,您也可以双击文件。这将打开Ubuntu软件中心。加载软件中心后,请按安装按钮。重复此过程,直到安装了文件夹中的所有文件。
我有一个可以在Windows上运行的小型python脚本,该脚本分析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)
对于将始终保持脱机状态的系统,通常最好使用其他一些答案中介绍的可靠的脱机软件包管理方法之一。这是因为它们有助于使已经安装的软件包保持最新状态,而不仅仅是一次安装少量软件包。
但是,对于个别情况,如果您只想在没有Internet连接的系统上快速安装软件包(并且可以将其下载到另一台计算机上并带过来),则可以这样做。主要的麻烦在于确定所需的内容,因为一个软件包通常还有它依赖的其他软件包,因此必须在安装软件包之前或同时安装。
这个答案是由Ubuntu 14.04中的重复问题g ++激发的,并以需要安装的情况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.8
和libstdc++-4.8-dev
。
通常,通过模拟结果比简单地查看软件包的依赖项(或假设所需的条件与上述相同)要好,因为:
一旦知道需要什么软件包,就可以下载它们。我建议为此使用Launchpad,因为下载是经过SSL加密的,这有助于防止文件损坏。
apt-get
或软件中心安装软件包都不需要HTTPS,因为它是根据经过数字签名的哈希表列表验证其哈希值的。如果最终将这些软件包放入软件包缓存中并apt-get
用于安装它们,那将会发生。dpkg -i
,那将不会完成。您可以通过下键入其名称来搜索包封装在https://launchpad.net/ubuntu,然后点击“找到一个包。” 例如,搜索g++-4.8
将带您到gcc-4.8源软件包页面。
然后向下滚动到您的Ubuntu版本的代号。您正在运行14.04,所以这是Trusty Tahr。在发行版Wiki页面上列出了所有Ubuntu发行版的代号。单击向右的三角形,以查看它的软件包下载。
对于一些软件你可以从多个扩展下载列表口袋。您可能会看到:
例如,以下是14.04中可用于Firefox的功能:
通常,您会希望软件包具有安全性或更新(如果存在),而软件包则具有release。
展开软件包列表后,找到.deb
适合您的体系结构的文件。Debs的名字叫。最常见的体系结构是:name_version_architecture.deb
amd64
对于Intel和AMD处理器均称为)i386
也称为)例如,要获取g++-4.8
64位版本的Ubuntu软件包,您可以下载g++-4.8_4.8.4-1ubuntu15_amd64.deb
。
如果检索到的包都是相同的版本是apt-get
的install
行动会一直自动检索并安装(如果你的系统中的网络连接),那么你可以把包中/var/cache/apt/archives
,只是运行该命令:
sudo apt-get install g++
如果该系统从未连接到Internet,那么当您检索的所有软件包都来自发行版口袋时,可能就是这种情况。无论系统是否曾经连接到Internet,如果Launchpad上没有显示任何其他口袋中的包装,则几乎总是如此。(基本上,唯一不会出现的情况是,如果您安装了alpha或beta系统并且从未更新过。)
在安装的特定情况下g++
,我会使用apt-get
。
如果这行不通或您希望它不行,请通过将软件包放在其他空文件夹中并运行来安装软件包:
sudo dpkg -Ri /path/to/folder
或者,您可以单独命名软件包。此示例假设软件包位于当前目录中(即,您已cd
进入包含它们的目录):
sudo dpkg -i package1.deb package2.deb ...
除非要安装的软件包数量很少,并且您不知道要满足依赖关系而需要安装的确切顺序,否则使用这些方法要比单独手动安装每个软件包要有效得多。
我建议自定义Live CD并安装它们。
您也可以在http://packages.ubuntu.com/ filename上下载文件,但是随后您还必须注意相关性。
这个问题有点老了,因此目前的答案可能是多余的,但也许您也可以尝试使用dpkg-offline。安装bzr,然后:
bzr branch lp:dpkg-offline
其中包含一个教程和一个自述文件。
假设您想在Ubuntu 14.04 amd64系统上安装git,即使您的系统是例如12.04 i386,也可以:
dpkg-offline ubuntu-14.04-desktop-amd64.iso git
apt-get
用来安装软件包。dpkg-offline可以与10.04以后的任何Ubuntu桌面版本一起使用(我还没有对旧版本进行测试,但是它们也应该可以工作),并且可以与12.10以后的任何Ubuntu服务器版本一起使用。无论主机体系结构如何,它也应与amd64,i386和armhf映像一起使用。同样,我还没有使用arm64或powerpc / ppc64el进行过测试,但是它们也可以工作。
免责声明:我写了dpkg-offline。
一些软件包安装在安装USB棒上。我已卸载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
。
注意:这可能不是上面问题的答案,而是我在查找此问题时遇到的问题。
sources.list
然后再将其还原。