ubuntu使用dpkg进行离线安装数据包

工作中,我们的服务器常常是不联网的,或者我们的开发板系统处于脱机状态,这时我们的ubuntu系统需要离线安装一些软件包。于是我们常用dpkg进行离线安装。

前提:ubuntu系统中有dpkg软件

步骤:

1.找一台ubuntu系统版本一样或者接近的计算机,连上网。进行安装我们所需的软件包,例如安装php7.0-dev:

sudo apt-get install php7.0-dev

此时会打印一些日志,我们把我们需要的日志保存下来:

Selecting previously unselected package po-debconf.
(Reading database ... 270962 files and directories currently installed.)
Preparing to unpack .../po-debconf_1.0.19_all.deb ...
Unpacking po-debconf (1.0.19) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../libfile-stripnondeterminism-perl_0.015-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (0.015-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../dh-strip-nondeterminism_0.015-1_all.deb ...
Unpacking dh-strip-nondeterminism (0.015-1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../debhelper_9.20160115ubuntu3_all.deb ...
Unpacking debhelper (9.20160115ubuntu3) ...
Selecting previously unselected package libsys-hostname-long-perl.
Preparing to unpack .../libsys-hostname-long-perl_1.5-1_all.deb ...
Unpacking libsys-hostname-long-perl (1.5-1) ...
Selecting previously unselected package libmail-sendmail-perl.
Preparing to unpack .../libmail-sendmail-perl_0.79.16-1_all.deb ...
Unpacking libmail-sendmail-perl (0.79.16-1) ...
Selecting previously unselected package php-common.
Preparing to unpack .../php-common_1%3a35ubuntu6.1_all.deb ...
Unpacking php-common (1:35ubuntu6.1) ...
Selecting previously unselected package php7.0-common.
Preparing to unpack .../php7.0-common_7.0.33-0ubuntu0.16.04.16_amd64.deb ...
Unpacking php7.0-common (7.0.33-0ubuntu0.16.04.16) ...
Selecting previously unselected package php7.0-json.
Preparing to unpack .../php7.0-json_7.0.33-0ubuntu0.16.04.16_amd64.deb ...
Unpacking php7.0-json (7.0.33-0ubuntu0.16.04.16) ...
Selecting previously unselected package php7.0-opcache.
Preparing to unpack .../php7.0-opcache_7.0.33-0ubuntu0.16.04.16_amd64.deb ...
Unpacking php7.0-opcache (7.0.33-0ubuntu0.16.04.16) ...
Selecting previously unselected package php7.0-readline.
Preparing to unpack .../php7.0-readline_7.0.33-0ubuntu0.16.04.16_amd64.deb ...
Unpacking php7.0-readline (7.0.33-0ubuntu0.16.04.16) ...
Selecting previously unselected package php7.0-cli.
Preparing to unpack .../php7.0-cli_7.0.33-0ubuntu0.16.04.16_amd64.deb ...
Unpacking php7.0-cli (7.0.33-0ubuntu0.16.04.16) ...
Selecting previously unselected package php7.0-xml.
Preparing to unpack .../php7.0-xml_7.0.33-0ubuntu0.16.04.16_amd64.deb ...
Unpacking php7.0-xml (7.0.33-0ubuntu0.16.04.16) ...
Selecting previously unselected package php-xml.
Preparing to unpack .../php-xml_1%3a7.0+35ubuntu6.1_all.deb ...
Unpacking php-xml (1:7.0+35ubuntu6.1) ...
Selecting previously unselected package php-pear.
Preparing to unpack .../php-pear_1%3a1.10.1+submodules+notgz-6ubuntu0.3_all.deb ...
Unpacking php-pear (1:1.10.1+submodules+notgz-6ubuntu0.3) ...
Selecting previously unselected package shtool.
Preparing to unpack .../shtool_2.0.8-8_all.deb ...
Unpacking shtool (2.0.8-8) ...
Selecting previously unselected package php7.0-dev.
Preparing to unpack .../php7.0-dev_7.0.33-0ubuntu0.16.04.16_amd64.deb ...
Unpacking php7.0-dev (7.0.33-0ubuntu0.16.04.16) ...
Selecting previously unselected package dh-php.
Preparing to unpack .../archives/dh-php_0.10_all.deb ...
Unpacking dh-php (0.10) ...
Selecting previously unselected package pkg-php-tools.
Preparing to unpack .../pkg-php-tools_1.32ubuntu2_all.deb ...
Unpacking pkg-php-tools (1.32ubuntu2) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Setting up po-debconf (1.0.19) ...
Setting up libfile-stripnondeterminism-perl (0.015-1) ...
Setting up libsys-hostname-long-perl (1.5-1) ...
Setting up libmail-sendmail-perl (0.79.16-1) ...
Setting up php-common (1:35ubuntu6.1) ...
Setting up php7.0-common (7.0.33-0ubuntu0.16.04.16) ...
 

2.找到我们执行apt-install时的软件包缓存目录,我们这里是/var/cache/apt/archives/ ,可以把所有的都拷贝的离线的目标电脑,也可以只拷贝需要的部分

这里需要的部分就要参考第一步的apt-get install的log,可能就是这些,可能还要一些,我这里是刚刚好,最好把日志提到的文件都拷出来:即第1步中标红的deb包;

3.把deb包拷贝到目标电脑以后,采用

sudo dpkg -i ???.deb

按照第1步日志描述的deb包安装顺序,依次执行dpkg -i安装deb包

4.安装过程中可能会遇到冲突问题。我上次就是安装了一个php5.dev没有安装成功,由于我安装的php5.dev是用dpkg安装的,执行sudo apt-get install -f的时候会提示要下载文件,由于我的目标机是离线的,于是造成修复到下载文件的这一步时,无法进行下一步,所以针对这个离线环境的dpkg安装的错误文件,只能用dpkg删除,来实现修复,执行:

dpkg -r php5-dev.deb

之后再安装我的php7.0-dev.deb就能用了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值