我有两个 Ubuntu 系统,它们完全一样。
我在一个系统上执行了几个apt-get install XXX
,我可以在/var/cache/apt/archives/
. 然后我将这些 deb 文件复制到另一个系统/home/me/archives/
并执行apt-get install ./*.deb
.
我认为它应该在本地安装 deb 包,但令我惊讶的是,它仍然重新下载所有 deb 文件。我不知道为什么。
奇怪的地方有三点:
当我执行
apt-get install ./*.deb
时,会出现很多消息:Note, selecting 'python-rospkg' instead of './python-rospkg_1.1.4-100_all.deb' Note, selecting 'python-serial' instead of './python-serial_3.0.1-1_all.deb' Note, selecting 'python-service-identity' instead of './python-service-identity_16.0.0-2_all.deb' Note, selecting 'python-setuptools' instead of './python-setuptools_20.7.0-1_all.deb' Note, selecting 'python-sip-dev' instead of './python-sip-dev_4.17+dfsg-1build1_amd64.deb' Note, selecting 'python-sip' instead of './python-sip_4.17+dfsg-1build1_amd64.deb' Note, selecting 'python-six' instead of './python-six_1.10.0-3_all.deb'
我尝试安装其中一个 deb 包,例如 ,
apt-get install libwebp-dev_0.4.4-1_amd64.deb
但我总是收到错误:Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libwebp-dev_0.4.4-1_amd64.deb E: Couldn't find any package by glob 'libwebp-dev_0.4.4-1_amd64.deb' E: Couldn't find any package by regex 'libwebp-dev_0.4.4-1_amd64.deb'
我也试过用
dpkg -i *.deb
安装这些本地的deb包,但是出现了丢失某些包的错误,然后我执行apt install -f
从网上获取丢失的deb包,但是丢失的包来自互联网和原来的本地包完全一样...
总之,我的系统无法按预期安装本地 deb 包。
“apt-get”命令不能像你想要的那样使用。您只能从存储库安装它。但正确的方法是使用“dpkg”或“apt”命令:
或者
使用 dpkg 可能会破坏包依赖关系,它不会自动解决它,因此您可以使用 apt-get 来解决问题:
这个问题来了:
我执行了几个
apt install XXX
,都是关于python模块的,比如python-numpy
etc。我以为会依赖python2.7
所以python2.7
会自动下载安装但是我错了(可能是因为python3.5
已经默认安装了?我不知道具体原因) . 这意味着我应该再执行一个命令:apt install python2.7
. 否则,apt install ./*deb
将再次重新下载所有软件包。另外,我不知道为什么,但dpkg -i *.deb && apt install -f
没有安装python2.7
.无论如何,在安装
python2.7
并将其 deb 包与其他包放在一起之后,我可以使用命令将它们全部安装在本地apt install ./*.deb
。