一、應用場景
a.當我們需要在多台電腦安裝同一個軟件,並且這個軟件很大,下載需要很長時間時
b.需要安裝軟件的ubuntu不能上網
二、離線安裝包的制作
環境說明
系統是 ubuntu-16.04.5-server-amd64,默認已經安裝好了python3,版本為3.5.2
安裝制定軟件
更改ubuntu的更新源為阿里雲,默認的速度太慢了
sudo vi /etc/apt/sources.list
內容如下:
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
sudo apt-get -y install python3-pip
執行完上述指令后,XXXX軟件的安裝包就下載到了/var/cache/apt/archives目錄下
生成依賴關系
新建一個文件夾
在項目根目錄新建文件夾offlinePackage
sudo mkdir /offlinePackage
拷貝下載的deb包
將下載的deb包拷貝到上述新建的文件夾下
sudo cp -r /var/cache/apt/archives /offlinePackage
修改文件夾權限
修改文件夾的權限,可讀可寫可執行
sudo chmod 777 -R /offlinePackage/
建立deb包的依賴關系
sudo dpkg-scanpackages /offlinePackage/ /dev/null |gzip >/offlinePackage/Packages.gz
如果出現錯誤:sudo: dpkg-scanpackages: command not found
則需要安裝dpkg-dev工具
sudo apt-get install dpkg-dev
打包成壓縮包
sudo tar zcvf offlinePackage.tar.gz /offlinePackage/
保存offlinePackage.tar.gz文件到U盤或服務器
三、在另外一台Ubuntu上離線安裝
拷貝文件到根目錄
插入U盤或光盤,將offlinePackage.tar.gz復制到根目錄下,解壓
sudo tar zxvf offlinePackage.tar.gz -C /
添加到系統源
注意:我們在添加之前可以先將原來的源備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back
將安裝包所在和源路徑添加到系統源source.list
sudo vi /etc/apt/sources.list
內容如下:
deb file:/// offlinePackage/
注意:offlinePackage前面有一個空格
更新系統源
sudo apt-get update
輸出:
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
sudo apt-get -y install python3-pip --allow-unauthenticated
注意:
兼容性問題,如果我們制作安裝包時,用的是64位的ubuntu,那么該離線包只能在其他64位系統上安裝。
有些軟件對ubuntu server和ubuntu desktop版也不兼容。總之,在什么系統下制作的離線包,就在什么系統下安裝。
查看pip3版本
pip3 -V
輸出:
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
sudo apt-get install -y nginx
搭建項目索引頁
這里不使用域名,直接訪問IP地址作為主頁!
注釋掉nginx的默認首頁
sudo vim /etc/nginx/nginx.conf
找到以下內容,將sites-enabled注釋掉
include /etc/nginx/conf.d/*.conf; #include /etc/nginx/sites-enabled/*;
進入目錄conf.d,新建文件deb.conf
vim /etc/nginx/conf.d/deb.conf
內容如下:
server { listen 80; server_name localhost; root /offlinePackage; location / { autoindex on; } }
檢查配置文件是否正確
sudo nginx -t
如果出現以下提示,表示ok
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
加載配置
nginx -s reload
訪問索引頁
訪問url: http://192.168.91.128/ ,效果如下:
更新ubuntu數據庫
編輯配置文件
sudo vim /etc/apt/sources.list
最后一行增加
deb http://192.168.91.128 /
注意:保證有空格,否則會提示格式錯誤。
最后一個是斜杠
使用apt-get update來更新一下
sudo apt-get update
之后,就可以安裝軟件了!
務必注意:使用apt-get install -y 軟件名,后面一定要帶--allow-unauthenticated,因為它是私有的,還沒有簽名!
本文從參考鏈接:
https://www.jianshu.com/p/ee870d63c175