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

yum 搭建私有倉庫

今日內容

  • Linux 中安裝軟體的三種方法
  • yum 私有倉庫
  • selinux 和 firewalld (iprables)
  • 解決系統亂碼

內容詳細

一、Linux 安裝軟體的三種方法

rpm安裝、yum 安裝、原始碼編譯安裝

區別

1、rpm 安裝類似於window的安裝包,下載後直接安裝。

​ 缺點: 無法解決依賴,比如下載python 也需要下載 C 語言

2、yum 安裝基於 rpm 安裝,就是載 rpm 上增加了自動解決依賴問題

3、原始碼安裝:通過編譯原始碼得到軟體包。優點是可以自定製軟體包,缺點是比較複雜。

rpm 安裝

	安裝: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

二、搭建 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

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

9、在另一個虛擬機器中測試

	再另開一個虛擬機器,把它的 /etc/yum.repos.d 中的 repo 檔案連結源改成遠端倉庫的地址

1、下載 yum-utils,以便新增 repo 檔案的源
[root@localhost yum.repos.d]# yum install yum-utils -y

2、備份源,把原有的 repo 檔案備份好
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv *.repo backup/

3、 新增源,新增遠端倉庫虛擬機器的ip地址
[root@localhost yum.repos.d]# yum-config-manager --add-repo=http://192.168.15.101/
[root@localhost ~]# yum-config-manager --add-repo=http://192.168.15.101/

Loaded plugins: fastestmirror
adding repo from: http://192.168.15.101/
[192.168.15.101_]
name=added from: http://192.168.15.101/
baseurl=http://192.168.15.101/
enabled=1

4、重新整理快取
[root@localhost yum.repos.d]# yum clean all 
[root@localhost yum.repos.d]# yum makecache

5、測試
[root@localhost ~]# yum install zsh -y