Ubuntu離線安裝軟件包


一、應用場景

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM