yum搭建私有倉庫
阿新 • • 發佈:2021-12-16
yum搭建私有倉庫
1、Linux 中安裝軟體的三種方法
rpm安裝、yum 安裝、原始碼編譯安裝 區別 1、rpm 安裝類似於window的安裝包,下載後直接安裝。 缺點: 無法解決依賴,比如下載python 也需要下載 C 語言 2、yum 安裝基於 rpm 安裝,就是載 rpm 上增加了自動解決依賴問題 3、原始碼安裝:通過編譯原始碼得到軟體包。優點是可以自定製軟體包,缺點是比較複雜。 安裝:rpm -ivh [軟體包名稱] 解除安裝:rpm -e [軟體包名稱] 升級:rpm -Uvh [軟體包名稱] 1、下載安裝包 1、去華為雲下載 centos 7 檔案 : https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/ 2、把下載好的檔案上傳到 Linux 中, 3、如果把 window 中的檔案上傳到 Linux ? 先下載 lrzsz : yum install lrzsz -y # 值得注意:如果 yum 無法安裝,有可能是 /etc/yum.repo.d/ 目錄下的 .repo 檔案被更改了,請檢查 2、開始安裝軟體 rpm -ivh <安裝包名> [root@localhost ~]# rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm 3、解除安裝軟體 rpm -e <安裝名(無需版本號)> [root@localhost]~# rpm -e zsh 4、更新安裝包 rpm -Uvh <安裝包全名> [root@localhost]~# rpm -Uvh zsh-5.0.2-34.el7_8.2.x86_64.rpm 安裝包名稱 zsh-5.0.2-34.el7_8.2.x86_64.rpm 軟體包名稱:zsh 版本號:5.0.2 第多少次編譯:34 適用的平臺:el7_8(CentOS 7) 適用的系統位數:x86_64 副檔名:rpm rpm 其他命令操作 檢視軟體包的配置檔案 rpm -qc <安裝包名> *** [root@localhost]~# rpm -qc zsh /etc/skel/.zshrc /etc/zlogin /etc/zlogout /etc/zprofile /etc/zshenv /etc/zshrc 檢視是否安裝某軟體 rpm -q <軟體名> # 表示安裝 [root@localhost]~# rpm -q zsh zsh-5.0.2-34.el7_8.2.x86_64 # 沒安裝 [root@localhost]~# rpm -q zsh package zsh is not installed 檢視當前系統安裝了哪些軟體 rpm -qa [root@localhost]~# rpm -qa yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch setup-2.8.71-11.el7.noarch libndp-1.2-9.el7.x86_64 # 太多了 檢視軟體的安裝路徑,檢視安裝了哪些東西 rpm -ql <軟體名> [root@localhost]~# rpm -ql python3 /usr/bin/pydoc3 /usr/bin/pydoc3.6 /usr/bin/python3 /usr/bin/python3.6 /usr/bin/python3.6m yum 安裝 1、安裝 基於rpm安裝,自動解決依賴。 可以自己從網路中下載安裝包,無需拖拽上傳 命令 : yum install <軟體名> 引數 : -y : 免互動,直接同意安裝 --nogpgcheck : 忽略公鑰認證(為了安全) 2、解除安裝 命令 : yum remove <軟體名> [root@localhost]~# yum remove zsh 3、更新 命令 : yum update [軟體包名稱] 引數: -y : 免互動 注意:如果跟具體的軟體包名稱,就會更新指定軟體包;如果沒有指定,則更新系統所有的需要更新的軟體包。 4、yum安裝的生命週期 1、執行 yum install <軟體名> 命令 2、去到 /etc/yum.repo.d/ 路徑下查詢 .repo 結尾的檔案 3、通過 .repo 檔案中中的連結,找到軟體對應的倉庫 4、從對應的軟體倉庫中下載軟體安裝包 5、快取到 /var/cache/yum/ 目錄下 5、根據快取安裝軟體 6、刪除軟體包(keepcache 是否儲存快取,0 代表不儲存,1 代表儲存) 注:/etc/yum.conf 是yum的配置檔案。 [root@localhost etc]# cat yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever < -- 快取的目錄 keepcache=0 < -- 是否儲存快取,0 代表不儲存,1 代表儲存 debuglevel=2
2、yum 私有倉庫
我們使用 yum 去下載軟體,實際上是通過連結去到別人的倉庫裡(華為雲,阿里雲)找到安裝包下載至本地然後安裝的,有一定的風險,在公司一般會搭建自己的私有倉庫,供內部人員下載軟體使用 1、本地版 1、下載必須的軟體包 下載用於初始化倉庫的軟體包 yum install yum-utils createrepo -y 2、建立軟體倉庫 倉庫建立在 /opt 目錄下 mkdir /opt/repos 3、下載對應的軟體 在windows中把需要的軟體包下載下來並上傳至Linux 在倉庫 /opt/repos 中建立一個 package 資料夾,用於存放倉庫的軟體包,並且把軟體包都存放到 package 資料夾下 mkdir /opt/repos/packages cp zsh-5.0.2-34.el7_8.2.x86_64.rpm /opt/repos/packages 4、初始化倉庫 createrepo /opt/repos 這樣倉庫就具備了兩個資料夾 packages、repodata [root@localhost repos]# ll total 4 drwxr-xr-x 2 root root 45 Dec 16 16:48 packages drwxr-xr-x 2 root root 4096 Dec 16 16:49 repodata 5、新增 yum 源 根據 yum 安裝的生命週期,使用者用 yum 安裝軟體時,會首先去到 /etc/yum.repos.d 中查詢倉庫連結,為了不讓原來的 repo 檔案影響測試本地倉庫,先把原來的 .repo 檔案移動到別的路徑下,再建立私有倉庫的 repo 檔案,用於存放私有倉庫的連結 1、cd /etc/yum.repos.d/ 2、mkdir back 3、mv ./*.repo back < -- 存檔(原 repo 檔案)完成 4、yum-config-manager --add-repo=file///opt/repos 此命令用於建立一個新的 repo 檔案,裡面存放指向本地倉庫的路徑:file///opt/repos cat /etc/yum.repos.d/opt_repos.repo [opt_repos] # 源的名稱 name=added from: file:///opt/repos # 源的簡介 baseurl=file:///opt/repos # 源的下載地址 enabled=1 # 是否啟用:1啟用 , 0不啟用 6、生成快取 yum clean all yum makecache 7、測試 [root@localhost ~]# yum install zsh image 2、遠端版 前六步與本地版搭建一模一樣 7、安裝遠端訪問軟體(Nginx) 安裝遠端訪問軟體(Nginx) 1、在 yum 的 repo 檔案中新增華為雲的路徑源 [root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo 2、這是epel的源,新增完之後就可以通過 yum 去網址下載 Nginx 了 [root@localhost ~]# yum-config-manager --add-repo=https://repo.huaweicloud.com/epel/7/x86_64/ adding repo from: https://repo.huaweicloud.com/epel/7/x86_64/ [repo.huaweicloud.com_epel_7_x86_64_] name=added from: https://repo.huaweicloud.com/epel/7/x86_64/ baseurl=https://repo.huaweicloud.com/epel/7/x86_64/ enabled=1 3、通過 yum 下載 Nginx [root@localhost ~]# yum install nginx --nogpgcheck 8、修改nginx的配置檔案 1、查詢一下 nginx 中有哪些配置檔案 [root@localhost ~]# rpm -qc nginx 2、修改 nginx.conf 檔案即可 vim /etc/nginx/nginx.conf # include /etc/nginx/conf.d/*.conf; < -- 註釋掉 server { listen 80; listen [::]:80; server_name _; root /opt/repos; < -- 改為本地的軟體倉庫地址 autoindex on; < -- 表示啟動nginx 3、 測試更改是否成功 [root@localhost ~]# nginx -t 4、 啟動nginx [root@localhost ~]# systemctl start nginx 5、 關閉selinux和firewalld [root@localhost ~]# systemctl disable --now firewalld [root@localhost ~]# setenforce 0 6、瀏覽器訪問虛擬機器ip地址,如果出現以下的頁面說明nginx啟動成功