天天看點

Linux軟體包常見的幾種下載下傳、安裝方法

線上源下載下傳和安裝

如果伺服器是處于線上狀态,在使用預設下載下傳源是外國的情況下,安裝更新軟體包往往會比較痛苦的存在,下載下傳了許久來一個逾時就gg了。國内有許多鏡像源,完美的解決了這個問題。

對于rpm系列的Linux,源就是存放在/etc/yum.repos.d/的檔案,一個檔案為一個源。

# 備份一下
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下載下傳阿裡的源替換
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 清除舊緩存,生成新緩存
yum clean all
yum makecache      

deb系列下的源為儲存在/etc/apt/sources.list檔案。

# 先備份
mv /etc/apt/sources.list /etc/apt/sources.list.bak

# debian 11
echo -e 'deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib\ndeb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib\ndeb https://mirrors.aliyun.com/debian-security/ bullseye-security main\ndeb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main\ndeb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib\ndeb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib\ndeb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib\ndeb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib'      

具體可以看阿裡雲首頁debian鏡像

其他的發行版本的其他源配置方法也有可供參考。

  • 阿裡雲https://developer.aliyun.com/mirror
  • 騰訊雲騰訊軟體源 (tencent.com)
  • 中科大USTC Open Source Software Mirror
  • 清華源清華大學開源軟體鏡像站 | Tsinghua Open Source Mirror

離線下載下傳和安裝

不是所有的伺服器都是對外服務,也有的伺服器為區域網路内提供一些運算、檔案共享等服務,為了安全起見,是以會切斷與外網的通信。

  • 如果需要安裝軟體包,一般情況有兩種方法。
    • 下載下傳可執行的二進制比如.rpm和.deb檔案來安裝,或者是下載下傳源代碼編譯安裝。
    • 配置區域網路内的本地yum、apt源。

軟體包下載下傳安裝

需要使用一台可以聯網的裝置,不安裝隻下載下傳安裝包,再将下載下傳好的安裝包通過scp等之類的方式上傳到其系統中。

rpm系列有專門的工具yumdownlode,使用起來還是很友善的。

# 下載下傳相關包以及依賴
yumdownloader --resolve --destdir=/local/yum <包名>

# 這裡使用-i也同理,-U為upgrade
rpm -Uvh --force --nodeps <包路徑>      

deb的可能有點麻煩,需要依賴需要手動下載下傳,而且要先安裝才可以看到依賴。

# 檢視依賴
apt depends <包名>

# 檢視包資訊
apt-cache show <包名>

# 檢視包下載下傳路徑url
apt policy <包名>

# 隻下載下傳并且下載下傳到目前位置
apt-get download <包名>      

結合起來的指令

#下載下傳
apt-get download <包名>
apt depends <包名> | awk '{print $2}' | xargs apt-get download

# 安裝
dpkg --force-all -i <包路徑>      

碼源安裝

還是需要一台已經聯網可以下載下傳源代碼的壓縮包的裝置,可以從官網、github等下載下傳自己對應發行版本和處理器架構的源碼包,再使用scp之類的方式上傳到離線的伺服器。

一般情況都要經過解壓、配置(configure)、編譯(make)、安裝(make install)。下面以我之前的安裝openlava為例子。

# 解壓到目前檔案夾,會生成個同名openlava檔案夾
tar -zxvf openlava-4.0.tar.gz

# 進入源碼檔案夾中
cd openlava-4.0

# 配置configgure,加上prefix參數,配置安裝路徑,友善以後維護
. /configure --prefix=/data/openlava

# 編譯make,這裡的-j參數定義了使用線程數,這裡是2線程
# 可以用下面的指令檢視線程數
# grep 'processor' /proc/cpuinfo | sort -u | wc -l
make -j 2

# 安裝
make install      

不過源代碼也不是這麼好找的啦。

本地源

本地yum源

通過系統iso鏡像制作本地源,先挂載系統鏡像。

mount /dev/cdrom /挂載路徑      

yum的下載下傳源的相關配置檔案在/etc/yum.repos.d/目錄中,修改名稱全部為bak。

cd /etc/yum.repo.d/
ls -l | awk '{print $9}' | xargs -I{} mv {} {}.bak      

  建立個檔案<名字>.repo,這裡建立Local.repo。

# local yum
[Local] #取名
name=Local  #取名
baseurl=file://挂載鏡像絕對路徑  #比如file:///media/cdrom
enabled=1    #是否使用源,1開0關  
gpgcheck=0  #檢查,1開0關      

完成後生成緩存

yum clean all
yum makecache      

 本地yum源挂載共享

也許你的伺服器有若幹台,每一台都使用單獨iso挂載可能有點麻煩,可以嘗試使用NFS、SMB等方式實作網絡挂載,将本機設定為Server,共享iso鏡像的挂載路徑,其他Linux建立同名的路徑挂載,scp将之前編輯的/etc/yum.repos.d/Local.repo配置檔案,即可實作共享。

本地yum源http共享

在編輯repo檔案時候,baseurl是可以直接寫http/s的url的,隻要我們将挂載iso鏡像通過http共享出來。

需要安裝Nginx

# 會在/etc/yum.repos.d/生成nginx.repo
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 再安裝 nginx,沒有第一步安裝nginx會提示找不到
 yum -y install nginx

# 編輯一下/etc/nginx/nginx.conf配置檔案在http{}裡面加
# 或者看到include /etc/nginx/conf.d/*.conf;在conf.d裡面的*.conf裡加
# 比如default.conf
server {
listen 8080; # 端口看自己需求
server_name localhost;
root /mnt;   # 這裡的路徑對應你挂載iso的路徑
index index.html;
}      

修改/etc/yum.repos.d/Local.repo,中的baseurl為http://192.168.2.149:8080/挂載目錄。

基于此,可以拓展出基于docker制作http共享源哈哈。

繼續閱讀