1. 程式人生 > 其它 >yum搭建私有倉庫

yum搭建私有倉庫

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啟動成功