[toc] yum工具及源碼包 yum 是RedHat以及CentOS中的軟體包管理器,能夠通過互聯網下載以rpm結尾的包,並且安裝,並可以自動處理依賴性關係,無需繁瑣的一次次下載安裝。 yum源 要成功的使用yum工具安裝更新軟體或系統,就需要有一個包含各種rpm軟體包的repository(軟體 ...
目錄
yum工具及源碼包
yum
yum
是RedHat以及CentOS中的軟體包管理器,能夠通過互聯網下載以rpm結尾的包,並且安裝,並可以自動處理依賴性關係,無需繁瑣的一次次下載安裝。
yum源
要成功的使用yum工具安裝更新軟體或系統,就需要有一個包含各種rpm軟體包的repository(軟體倉庫),這個軟體倉庫我們習慣稱之為yum源
或者yum 倉庫
這個源可以是本地的也可以是網路的。
各大鏡像源:
阿裡雲:https://opsx.alibaba.com/mirror
清華源:https://mirrors.tuna.tsinghua.edu.cn/
163源:http://mirrors.163.com/
華為源:https://mirrors.huaweicloud.com/
科大源:http://mirrors.ustc.edu.cn/
yum實戰案例
使用yum查詢軟體包的方式
#列出軟體倉庫中可用的軟體
[root@zls ~]# yum list
#進行模糊查找
[root@zls ~]# yum list|grep ftp
#列出軟體包詳情
[root@zls ~]# yum info ftp
使用yum安裝軟體包的方式
#安裝軟體只需要給出軟體名稱(前提是在倉庫中必須有)
[root@zls ~]# yum install traceroute
#安裝過程中分析依賴關係後, 直接安裝, 無需交互
[root@zls ~]# yum install php -y
#安裝本地的rpm包, 如果有依賴關係, 會自動從軟體倉庫中下載所需依賴(非來自.repo定義的軟體倉庫)
[root@zls ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
#安裝網路上rpm包
[root@zls ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
使用yum重裝軟體包的方式
#檢查軟體是否存在
[root@zls ~]# rpm -q vsftpd
vsftpd-2.2.2-24.el6.x86_64
#檢查vsftpd軟體配置文件
[root@zls ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
#不小心刪除vsftpd配置文件
[root@zls ~]# rm -f /etc/vsftpd/vsftpd.conf
#重新安裝軟體
[root@zls ~]# yum reinstall vsftpd
#再次檢查
[root@zls ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
使用yum更新軟體包的方式
#對比Linux已安裝的軟體和yum倉庫中的軟體, 有哪些需要升級
[root@zls ~]# yum check-update
#更新acl軟體
[root@zls ~]# yum update acl -y
#如果執行下麵的命令,很危險
[root@zls ~]# yum update -y
使用yum刪除軟體包的方式
#先安裝一個samba軟體
[root@zls ~]# yum install samba -y
#刪除該軟體包,會刪除依賴, 但是我們儘可能不要使用刪除軟體操作
[root@zls ~]# yum erase samba -y
[root@zls ~]# yum remove samba -y
yum倉庫的相關命令
#列出yum源可用的軟體倉庫
[root@zls ~]# yum repolist
#列出全部yum源可用和禁用的倉庫
[root@zls ~]# yum repolist all
#啟用軟體包
[root@db04 ~]# yum-config-manager --enable
建議:直接修改配置文件
#查看這個文件或命令屬於哪個包
yum provides /etc/my.cnf
yum provides cd
yum緩存相關指令
#緩存yum源軟體倉庫, xml元數據文件
[root@zls ~]# yum makecache
#緩存軟體包, 修改yum全局配置文件
[root@zls ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 //啟動緩存
#查看緩存的xml文件
[root@zls ~]# ls /var/cache/yum/x86_64/7/base/
#查看緩存軟體包路徑
[root@zls ~]# /var/cache/yum/x86_64/7/
#另一種緩存rpm包方式
#1.安裝插件支持只下載軟體包不安裝
[root@zls ~]# yum install -y yum-plugin-downloadonly
#2.將軟體下載至指定目錄
[root@zls ~]# yum install httpd -y --downloadonly --downloaddir=/tmp
#清除所有yum緩存
[root@zls ~]# yum clean all
#只清除緩存的軟體包
[root@zls ~]# yum clean packages
yum包組相關指令
#列出已經安裝和所有可使用的軟體組
[root@zls ~]# yum groups list
#安裝一整個組的軟體
[root@zls ~]# yum groups install Development tools \
Compatibility libraries \
Base Debugging Tools
#yum刪除包組
[root@zls ~]# yum groups remove -y Base
yum歷史命令
#查看歷史執行yum命令
[root@zls ~]# yum history
#查詢歷史執行yum命令ID詳細信息
[root@zls ~]# yum history info N
#撤銷歷史執行過的yum命令
[root@zls ~]# yum history undo N
yum全局配置文件
yum的配置一般有兩種方式:
1.全局配置文件/etc/目錄下的yum.conf
2.子配置文件/etc/yum.repos.d/目錄下的所有.repo文件
vim /etc/yum.cnf
cachedir=/var/cache/yum/$basearch/$releasever //緩存目錄
keepcache=0 //緩存軟體包, 1啟動 0 關閉
debuglevel=2 //調試級別
logfile=/var/log/yum.log //日誌記錄位置
exactarch=1 //檢查平臺是否相容
obsoletes=1 //檢查包是否廢棄
gpgcheck=1 //檢查來源是否合法,需要有製作者的公鑰信息
plugins=1 //是否啟用查詢
installonly_limit=5
bugtracker_url
# metadata_expire=90m //每小時手動檢查元數據
# in /etc/yum.repos.d //包含repos.d目錄
YUM簽名檢查機制[擴展]
rpm
軟體提供組織redhat
在構建rpm
包時, 使用其私鑰private key
對 rpm
進行簽名
客戶端在使用rpm
為了驗證其合法性, 可以使用redhat
提供的公鑰public key
進行簽名檢查
方式1: 指定公鑰的位置
[root@zls ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
方式2: 提前導入公鑰
[root@zls ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@tianyun ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
方式3: 不進行簽名驗證
#不檢查軟體包的簽名,或者修改配置文件
[root@zls ~]# yum install httpd --nogpgcheck
製作本地yum倉庫
[] //倉庫名稱
name //倉庫描述信息
baseurl //YUM源url地址 ,可以是file:// ftp:// http://
enabled //是否激活該YUM源(0代表禁用,1代表激活,預設為激活)
gpgcheck //安裝軟體時是否檢查簽名(0代表禁用,1代表激活)
掛載鏡像
mount /dev/cdrom /mnt
備份原有倉庫
gzip /ctc/yum.repos.d/*
創建新倉庫文件
使用yum-config-manager命令添加本地倉庫
[root@zls ~]# yum-config-manager --add-repo="file:///mnt"
#手動添加repo配置文件(方式二)
[root@zls ~]# vim /etc/yum.repos.d/cdrom.repo
[cdrom]
name=This is local cdrom
baseurl=file:///mnt
enabled=1
gpgcheck=0
刷新repos生成緩存
yum makecache
構建企業級yum倉庫
服務端配置
1.基礎環境準備
#關閉防火牆
[root@yum_server ~]# systemctl stop firewalld
#臨時關閉selinux
[root@yum_server ~]# setenforce 0
#安裝ftp服務,啟動並加入開機啟動
[root@yum_server ~]# yum -y install vsftpd
[root@yum_server ~]# systemctl start vsftpd
[root@yum_server ~]# systemctl enable vsftpd
#開啟yum緩存功能
[root@yum_server ~]# vim /etc/yum.conf
[main] cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
[root@yum_server ~]# yum clean all
2.提供基礎base
源
[root@yum_server ~]# mkdir /var/ftp/centos7
[root@yum_server ~]# mount /dev/cdrom /mnt
[root@yum_server ~]# cp -rp /mnt/Packages/*.rpm /var/ftp/centos7
3.提供第三方源,同步中科大的源
#進入ftp目錄
[root@yum_server centos]# cd /var/ftp/
#同步中科大的源
[root@yum_server ftp]# rsync -avzP rsync://rsync.mirrors.ustc.edu.cn/repo/nginx ./
4.安裝createrepo
並創建 reopdata
倉庫
//安裝createrepo
[root@yum_server ~]# yum -y install createrepo
//生成倉庫信息
[root@yum_server ~]# createrepo /var/ftp/
//註意: 如果此倉庫每次新增軟體則需要重新生成一次
客戶端使用yum源
1.配置並使用base
基礎源
[root@yum_client ~]# gzip /etc/yum.repos.d/*
[root@yum_client ~]# vim /etc/yum.repos.d/centos7.repo
[centos74]
name=centos74_base
baseurl=ftp://10.0.0.90/centos7
gpgcheck=0
2.客戶端指向本地ftp
源
[root@yum_client ~]# vim /etc/yum.repos.d/nginx.repo
[ftp]
name=local ftpserver
baseurl=ftp://10.0.0.90/nginx
gpgcheck=0
流程圖
源碼包
源碼包指的是開發編寫好的程式源代碼,但並沒有將其編譯為一個能正常使用的工具。
源碼包的優缺點
優點:
1.有了源碼包,那我就可以自行修改代碼,提供我們使用,傳說中的二次開發
2.可以定製需要的相關功能
3.新版本優先更新源碼
4.自動化規範,方便落地
缺點:
1.相對於yum安裝,複雜
2.耗時比較長
源碼包安裝步驟
安裝源碼包,必須要經歷4個步驟
1.解壓 tar
2.生成 ./configure cmake
3.編譯 make
4.安裝 make install
源碼包安裝基礎環境準備
[root@node1 ~]# yum install -y gcc make wget