前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu离线安装软件包

Ubuntu离线安装软件包

作者头像
py3study
发布2020-01-20 11:25:34
5.2K0
发布2020-01-20 11:25:34
举报
文章被收录于专栏:python3python3

一、应用场景

a.当我们需要在多台电脑安装同一个软件,并且这个软件很大,下载需要很长时间时 b.需要安装软件的ubuntu不能上网

二、离线安装包的制作

环境说明

系统是 ubuntu-16.04.5-server-amd64,默认已经安装好了python3,版本为3.5.2

安装制定软件

更改ubuntu的更新源为阿里云,默认的速度太慢了

代码语言:javascript
复制
sudo vi /etc/apt/sources.list

内容如下:

代码语言:javascript
复制
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu xenial-security universe
deb http://mirrors.aliyun.com/ubuntu xenial-security multiverse

通过如下指令下载XXXX软件所需要的deb包,比如安装python3-pip

代码语言:javascript
复制
sudo apt-get -y install python3-pip

执行完上述指令后,XXXX软件的安装包就下载到了/var/cache/apt/archives目录下

生成依赖关系

新建一个文件夹

在项目根目录新建文件夹offlinePackage

代码语言:javascript
复制
sudo mkdir /offlinePackage

拷贝下载的deb包

将下载的deb包拷贝到上述新建的文件夹下

代码语言:javascript
复制
sudo cp -r /var/cache/apt/archives  /offlinePackage

修改文件夹权限

修改文件夹的权限,可读可写可执行

代码语言:javascript
复制
sudo chmod 777 -R /offlinePackage/

建立deb包的依赖关系

代码语言:javascript
复制
sudo dpkg-scanpackages /offlinePackage/ /dev/null |gzip >/offlinePackage/Packages.gz

如果出现错误:sudo: dpkg-scanpackages: command not found

则需要安装dpkg-dev工具

代码语言:javascript
复制
sudo apt-get install dpkg-dev

打包成压缩包

代码语言:javascript
复制
sudo tar zcvf offlinePackage.tar.gz /offlinePackage/

保存offlinePackage.tar.gz文件到U盘或服务器

三、在另外一台Ubuntu上离线安装

拷贝文件到根目录

插入U盘或光盘,将offlinePackage.tar.gz复制到根目录下,解压

代码语言:javascript
复制
sudo tar zxvf offlinePackage.tar.gz -C /

添加到系统源

注意:我们在添加之前可以先将原来的源备份

代码语言:javascript
复制
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back

将安装包所在和源路径添加到系统源source.list

代码语言:javascript
复制
sudo vi /etc/apt/sources.list

内容如下:

代码语言:javascript
复制
deb file:/// offlinePackage/

注意:offlinePackage前面有一个空格

更新系统源

代码语言:javascript
复制
sudo apt-get update

输出:

代码语言:javascript
复制
W: The repository 'file: offlinePackage/ Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.N: See apt-secure(8) manpage for repository creation and user configuration details.

大概意思是,这是不安全的更新源

离线安装

此时,在没有网络的情况下,我们就可以安装我们之间下载的XXXX软件了

比如安装python3-pip,注意:由于上面已经提示不安全了,所以安装软件时,必须要加--allow-unauthenticated

否则报错 E: There were unauthenticated packages and -y was used without --allow-unauthenticated

代码语言:javascript
复制
sudo apt-get -y install python3-pip --allow-unauthenticated

注意: 兼容性问题,如果我们制作安装包时,用的是64位的ubuntu,那么该离线包只能在其他64位系统上安装。 有些软件对ubuntu server和ubuntu desktop版也不兼容。总之,在什么系统下制作的离线包,就在什么系统下安装。

查看pip3版本

代码语言:javascript
复制
pip3 -V

输出:

代码语言:javascript
复制
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

说明安装成功了!

本文参考链接:

https://blog.csdn.net/wangqiulin123456/article/details/39582269

四、使用deb http方式

上线使用的是file方式,只能本机使用。那么其他服务器要使用,就不行了! 这个时候,需要使用http方式。可以让局域网的其他服务器使用!

安装nginx

代码语言:javascript
复制
sudo apt-get install -y nginx

搭建项目索引页

这里不使用域名,直接访问IP地址作为主页!

注释掉nginx的默认首页

代码语言:javascript
复制
sudo vim /etc/nginx/nginx.conf

找到以下内容,将sites-enabled注释掉

代码语言:javascript
复制
include /etc/nginx/conf.d/*.conf;#include /etc/nginx/sites-enabled/*;

进入目录conf.d,新建文件deb.conf

代码语言:javascript
复制
vim /etc/nginx/conf.d/deb.conf

内容如下:

代码语言:javascript
复制
server {
    listen 80;
    server_name localhost;
    root /offlinePackage;

    location / {
        autoindex on;
    }
}

检查配置文件是否正确

代码语言:javascript
复制
sudo nginx -t

如果出现以下提示,表示ok

代码语言:javascript
复制
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

加载配置

代码语言:javascript
复制
nginx -s reload

访问索引页

访问url: http://192.168.91.128/ ,效果如下:

1341090-20181105114033941-1615737799.png
1341090-20181105114033941-1615737799.png

更新ubuntu数据库

编辑配置文件

代码语言:javascript
复制
sudo vim /etc/apt/sources.list

最后一行增加

代码语言:javascript
复制
deb http://192.168.91.128 /

注意:保证有空格,否则会提示格式错误。

最后一个是斜杠

使用apt-get update来更新一下

代码语言:javascript
复制
sudo apt-get update

之后,就可以安装软件了!

务必注意:使用apt-get install -y 软件名,后面一定要带--allow-unauthenticated,因为它是私有的,还没有签名!

本文从参考链接:

https://www.jianshu.com/p/ee870d63c175

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、应用场景
  • 二、离线安装包的制作
    • 环境说明
      • 安装制定软件
        • 生成依赖关系
          • 新建一个文件夹
          • 拷贝下载的deb包
          • 修改文件夹权限
          • 建立deb包的依赖关系
          • 打包成压缩包
        • 三、在另外一台Ubuntu上离线安装
          • 拷贝文件到根目录
            • 添加到系统源
          • 更新系统源
            • 离线安装
            • 四、使用deb http方式
              • 安装nginx
                • 搭建项目索引页
                  • 访问索引页
                    • 更新ubuntu数据库
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档