一、Linux下軟件包的管理1、軟件安裝方式① RPM包管理(需要單獨(dú)解決依賴問題) ② YUM包管理(需要有網(wǎng)絡(luò)及YUM倉庫的支持,會(huì)自動(dòng)從互聯(lián)網(wǎng)下載軟件,自動(dòng)解決依賴) ③ 源碼安裝(安裝過程比較復(fù)雜,源碼安裝三步走。優(yōu)點(diǎn):定制性很強(qiáng)) 軟件:主線版(mainline),穩(wěn)定版(stable) 2、源碼安裝的配置過程在Linux系統(tǒng)中,源碼安裝一共分為三步(三步走): 第一步:配置過程(配置軟件的安裝路徑) 第二步:編譯過程(把軟件由源代碼編譯成可以安裝的程序) 第三步:安裝過程(把編譯后的程序進(jìn)行安裝) # ./configure && make && make install 3、詳解源碼安裝的配置過程(定制)# cd 軟件源碼包 # ./configure [選項(xiàng)] # ./configure --help --prefix=... Directories to put files in /usr/local 軟件家目錄 --bindir=... $prefix/bin 命令的目錄 --etcdir=... $prefix/etc 配置文件的目錄 httpd => /etc/httpd/httpd.conf --mandir=... $prefix/share/man man 文檔路徑 --locale=... $prefix/share/locale 語言編碼 ... 4、詳解編譯過程# make
5、安裝過程# make install 6、axel多線程下載軟件源碼安裝第一步:獲取axel多線程下載軟件 第二步:上傳axel軟件包到Linux系統(tǒng)中 第三步:安裝axel軟件(源碼安裝三步走=>配置+編譯+安裝) ① 對(duì)軟件進(jìn)行解壓縮操作 # tar -zxf axel-2.4.tar.gz 或 # tar -xf axel-2.4.tar.gz ② 使用cd命令切換到axel目錄中 # cd axel-2.4 ③ 對(duì)axel軟件進(jìn)行配置(不采用默認(rèn)配置) # ./configure --help Usage: ./configure [OPTIONS] Option Description Default --prefix=... Directories to put files in /usr/local --bindir=... $prefix/bin --etcdir=... $prefix/etc --mandir=... $sharedir/man --locale=... $sharedir/locale 設(shè)置axel軟件的安裝路徑為/opt/axel # ./configure --prefix=/opt/axel ④ 對(duì)axel軟件進(jìn)行編譯與安裝 # make # make install 或 # make && make install && :邏輯與,如果make編譯成功會(huì)立即執(zhí)行右邊的make install安裝程序,如果make編譯失敗,則以上程序會(huì)停止執(zhí)行,然后拋出錯(cuò)誤。 第四步:測(cè)試與使用 [root@yunwei ~]# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 bash: axel: command not found... 出現(xiàn)以上問題的主要原因在于:我們沒有采用默認(rèn)的安裝方式,所以導(dǎo)致當(dāng)我們執(zhí)行axel命令時(shí),其找不到對(duì)應(yīng)的軟件。 第五步:解決命令無法訪問問題 第一種方式:采用軟鏈接形式(類似Windows中的快捷方式) 第二種方式:使用環(huán)境變量(重要,Linux中的環(huán)境變量) 7、使用軟鏈接解決command not found# which axel /usr/bin/which: no axel in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) # ll /opt/axel/bin axel 解決方案:給/opt/axel/bin/axel創(chuàng)建一個(gè)快捷方式到/usr/local/bin # ln -s /opt/axel/bin/axel /usr/local/bin/axel 基本語法: # ln -s 源文件路徑 軟鏈接路徑 # axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 8、使用環(huán)境變量解決command not found環(huán)境變量 終端 => 命令 => 系統(tǒng)的環(huán)境變量(PATH => /etc/profile) => 一些命令的存放路徑 axel多線程下載軟件,通過源碼的方式安裝成功后,由于沒有使用默認(rèn)的安裝路徑,導(dǎo)致axel這個(gè)命令沒有出現(xiàn)在系統(tǒng)的環(huán)境變量中,所以其會(huì)出現(xiàn)command not found。 第一步:查詢當(dāng)前系統(tǒng)的環(huán)境變量 # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 第二步:把a(bǔ)xel所在目錄添加到環(huán)境變量 ① 使用vim編輯/etc/profile文件,追加到最后一行 # vim /etc/profile ... export PATH=$PATH:/opt/axel/bin # source /etc/profile => 代表讓以上配置立即生效 ② 使用echo命令向/etc/profile文件中追加一行 # echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profile # source /etc/profile 第三步:測(cè)試axel命令是否可以使用 # axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7 9、解決源碼安裝軟件手冊(cè)找不到問題問題重現(xiàn): [root@localhost axel]# man axel No manual entry for axel 原因:找不到指定的man文檔 解決方案: [root@localhost axel]# vim /etc/man.config ... 增加如下內(nèi)容: MANPATH /opt/axel/share/man 10、卸載源碼安裝的軟件第一步:進(jìn)入到源碼的安裝包中 # cd axel-2.4 # make uninstall => 安裝軟件的安裝包等程序 # make distclean => 卸載編譯與配置過程 第二步:刪除軟件的目錄 # rm -rf /opt/axel 二、YUM源概述1、yum源作用軟件包管理器,類似360的軟件管家 2、yum源優(yōu)點(diǎn)RPM安裝(下載軟件、單獨(dú)安裝、需要解決依賴關(guān)系) 源碼安裝(下載軟件的源碼包,解壓,進(jìn)入目錄=>配置+編譯+安裝) yum源:相當(dāng)于rpm軟件包管理的升級(jí)版 能夠解決軟件包之間的依賴關(guān)系,提高運(yùn)維人員的工作效率。
3、yum源分類本地yum源yum倉庫在本地(系統(tǒng)光盤/鏡像文件) => 不需要網(wǎng)絡(luò)的支持 網(wǎng)絡(luò)yum源yum倉庫不在本地,在遠(yuǎn)程
4、本機(jī)yum源備份(重要)第一步:使用cd命令切換到/etc/yum.repos.d目錄 # cd /etc/yum.repos.d/ 第二步:對(duì)所有的倉庫文件進(jìn)行備份 # tar -zcf repo.tar.gz *.repo 第三步:刪除所有的以.repo結(jié)尾的倉庫文件 # rm -rf *.repo 三、本地YUM源配置1、本地YUM配置① 使用光盤鏡像作為YUM源倉庫 ② 下載很多軟件,使用軟件包作為YUM源倉庫 2、使用光盤鏡像作為YUM源倉庫第一步:在VMware系統(tǒng)中裝在CentOS7.6系統(tǒng)的光盤鏡像 第二步:把光盤掛載到某個(gè)目錄下 # cd ~ # rm -rf /mnt/* # mount -o ro /dev/sr0 /mnt 選項(xiàng)說明: -o :掛載方式,ro代表以readonly=>只讀的方式進(jìn)行掛載 rw代表以read/write=>讀寫的方式進(jìn)行掛載 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sr0 11:0 1 4.3G 0 rom /mnt
第三步:把光盤掛載添加到開機(jī)啟動(dòng)文件中 # chmod +x /etc/rc.local # echo 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local
第四步:編寫本地YUM倉庫文件 # cd /etc/yum.repos.d/ 創(chuàng)建一個(gè)以*.repo結(jié)尾的文件,名稱任意 # vim local.repo [local] name=local yum baseurl=file:///mnt gpgcheck=0 enabled=1 # yum clean all # yum makecache # yum repolist all 注:file://本地協(xié)議路徑,后面跟倉庫的具體路徑
第五步:測(cè)試本地YUM倉庫是否可用 # yum install httpd -y 3、擴(kuò)展man 5在Linux系統(tǒng)中,給定我們一個(gè)配置文件,怎么查詢這個(gè)文件中每一個(gè)選項(xiàng)的作用呢? # man 命令 擴(kuò)展:man 5 配置文件名稱 # man 5 yum.conf 四、網(wǎng)絡(luò)YUM源配置1、網(wǎng)絡(luò)YUM源的分類① 使用比較知名平臺(tái)的YUM源(阿里云、騰訊、清華) ② 有些特定軟件(如Nginx、MySQL、Zabbix等等)需要根據(jù)官網(wǎng)文檔自定義網(wǎng)絡(luò)YUM源 2、使用知名平臺(tái)的YUM源阿里源:https://opsx.alibaba.com/mirror 網(wǎng)易源:http://mirrors.163.com/ 搜狐源:http://mirrors.sohu.com/ 清華源:https://mirrors.tuna./ 騰訊源、華為源…
案例:配置阿里云的yum源 第一步:百度,搜索你想要的YUM源,進(jìn)入官網(wǎng),找到CentOS 第二步:根據(jù)官網(wǎng)提示,配置阿里云的YUM源 # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # yum clean all # yum makecache 3、擴(kuò)展:EPEL源配置什么是EPEL源? 答:EPEL是對(duì)官網(wǎng)源的一個(gè)擴(kuò)展。 CentOS-Base.repo文件 => 基礎(chǔ)源(官方在帶的YUM源) epel.repo文件 => 擴(kuò)展源,是對(duì)官方Y(jié)UM源的一個(gè)補(bǔ)充 # yum install epel-release -y 比如:會(huì)跑的小火車就是在epel源中 # yum install sl -y # sl 4、特定軟件的YUM源配置比如特殊的幾個(gè)軟件,如Nginx、MySQL、Zabbix Nginx:http://www. MySQL:https://www./ Zabbix:https://www./ 找到官方文檔,把YUM源配置,寫入到一下文件中(repo文件) # cd /etc/yum.repos.d # vim nginx.repo [nginx-stable] name=nginx stable repo baseurl=http:///packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https:///keys/nginx_signing.key module_hotfixes=true 清理緩存: # yum clean all # yum makecache 安裝Nginx: # yum install nginx -y 五、自建YUM源倉庫1、緩存安裝軟件包什么時(shí)候需要緩存軟件?
2、如何緩存軟件安裝包# vim /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever 定義軟件包的緩存路徑 keepcache=1 1開啟緩存;0關(guān)閉 debuglevel=2 logfile=/var/log/yum.log ... 3、把軟件及依賴軟件全部下載到某個(gè)路徑只下載不安裝軟件: # yum install --downloadonly --downloaddir=保存路徑 軟件名稱 案例:下載samba軟件及依賴軟件 # mkdir /soft # yum install --downloadonly --downloaddir=/soft samba 4、自定義YUM倉庫第一步:在系統(tǒng)中安裝createrepo制作倉庫的軟件 # yum install createrepo -y 第二步:把/soft文件夾做成一個(gè)本地的自建倉庫 # createrepo /soft 第三步:在/etc/yum.repos.d目錄中創(chuàng)建一個(gè)soft.repo的倉庫 # cd /etc/yum.repos.d/ # vim soft.repo [soft] name=soft yum baseurl=file:///soft gpgcheck=0 enabled=1 清理緩存+重建緩存: # yum clean all # yum makecache 案例:下載samba軟件及依賴軟件 ```powershell # mkdir /soft # yum install --downloadonly --downloaddir=/soft samba 任務(wù)實(shí)施一、配置本地yum源㈠ 掛載鏡像到本地手動(dòng)掛載 [root@yunwei ~]# mount -o ro /dev/sr0 /mnt/ 開機(jī)自動(dòng)掛載 [root@yunwei ~]# echo "mount -o ro /dev/sr0 /mnt" >> /etc/rc.local ㈡ 修改配置文件指向本地倉庫[root@yunwei ~]# cd /etc/yum.repos.d/ [root@yunwei yum.repos.d]# cat local.repo [local] name=local yum baseurl=file:///mnt enabled=1 gpgcheck=0 二、配置MySQL官方y(tǒng)um源㈠ 下載官方提供的yum倉庫軟件包通過瀏覽器找到適合自己系統(tǒng)的軟包下載 https://dev./downloads/repo/yum/ ㈡ 安裝軟件包來自動(dòng)配置yum源安裝軟件包 [root@yunwei ~]# rpm -ivh mysql80-community-release-el6-2.noarch.rpm warning: mysql80-community-release-el6-2.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ########################################### [100%] 1:mysql80-community-relea########################################### [100%] 查看自動(dòng)配置的mysql源倉庫配置文件 [root@yunwei ~]# ls /etc/yum.repos.d/mysql-community* /etc/yum.repos.d/mysql-community.repo /etc/yum.repos.d/mysql-community-source.repo 注意: 1.默認(rèn)情況下,官方提供最新版本的軟件,我們需要根據(jù)自己的情況進(jìn)行修改配置文件 2.我們需要安裝mysql-5.6版本,所以關(guān)閉其他版本的倉庫,只打開5.6的倉庫 [root@yunwei ~]# cd /etc/yum.repos.d/ [root@yunwei yum.repos.d]# vim mysql-community.repo # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo./yum/mysql-5.6-community/el/6/$basearch/ enabled=1 將0改為1,開啟5.6版本倉庫 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql .... [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo./yum/mysql-8.0-community/el/6/$basearch/ enabled=0 將1改改為0,關(guān)閉默認(rèn)的8.0版本倉庫 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 以下兩個(gè)倉庫也關(guān)閉,暫時(shí)用不到 [mysql-connectors-community] name=MySQL Connectors Community baseurl=http://repo./yum/mysql-connectors-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-community] name=MySQL Tools Community baseurl=http://repo./yum/mysql-tools-community/el/6/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql ㈢ 清空yum緩存重新創(chuàng)建緩存[root@yunwei yum.repos.d]# yum clean all [root@yunwei yum.repos.d]# yum makecache 三、安裝MySQL-5.6.43版本軟件包[root@yunwei ~]# yum install mysql-community-server 說明:
任務(wù)總結(jié)
擴(kuò)展補(bǔ)充1、yum倉庫優(yōu)先級(jí)問:如果有多個(gè)倉庫,是否可以設(shè)置yum源的優(yōu)先級(jí)設(shè)定?
添加priority=n的配置項(xiàng),n值越小優(yōu)先級(jí)越高,默認(rèn)99. [local] name=local yum baseurl=file:///mnt enabled=1 gpgcheck=0 priority=1 2、yum緩存軟件包**問:**如果想把從網(wǎng)絡(luò)源安裝的軟件包下載到本地方便后續(xù)使用,怎么做呢?
[root@yunwei ~]# vim /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever 軟件包的緩存路徑 keepcache=1 將0變成1,表示緩存安裝軟件包到本地 debuglevel=2 logfile=/var/log/yum.log .... 課后強(qiáng)化
rpm -ivh package 安裝 rpm -e package 卸載 rpm -Uvh 升級(jí),如果已安裝老版本,則升級(jí);如果沒安裝,則直接安裝 rpm -Fvh 升級(jí),如果已安裝老版本,則升級(jí);如果沒安裝,則不安裝 rpm -ivh --force 強(qiáng)制安裝 rpm --nodeps 忽略依賴關(guān)系 rpm -ql 查看已經(jīng)安裝的軟件的文件列表 rpm -qlp package.rpm 查看未安裝的rpm包里的文件列表 rpm -qa 查看已經(jīng)安裝的所有rpm包 rpm -qd 查看軟件的文檔列表 rpm -qc 查看軟件的配置文件 rpm -qi 查看軟件的詳細(xì)信息 rpm -qf filename 查看文件來自哪個(gè)rpm包 rpm --import key_file 導(dǎo)入公鑰用于檢查rpm文件的簽名 rpm -checksig package.rpm 檢查rpm包的簽名
# yum install package -y 默認(rèn)是安裝來自倉庫里的軟件,指定的是軟件名字。多個(gè)包空格隔開;-y (取消交互) # yum install ./xlockmore-5.31-2.el6.x86_64.rpm 或者 # yum localinstall ./xlockmore-5.31-2.el6.x86_64.rpm 安裝來自本地指定路徑下的rpm包,而不是來自倉庫 # yum remove 或者 erase package 卸載軟件包 # yum update 更新倉庫里所有比本機(jī)已經(jīng)安裝過的軟件要的軟件 # yum update package 指定升級(jí)的軟件 # yum search mysql 搜索出所有軟件名字或者軟件描述包含“mysql”關(guān)鍵字的軟件 # yum provides "*libmysqlclient.so*" 找出模塊由哪些軟件包提供 # yum provides "*xeye*" 搜索一個(gè)包含xeye關(guān)鍵字的軟件包 # yum clean all 清空之前的yum列表緩存 # yum makecache 創(chuàng)建新的緩存 # yum list 列出倉庫里的所有軟件包 # yum repolist 列出已配置的軟件倉庫 # yum list|tail 查看未安裝的軟件包 # yum list |grep 關(guān)鍵字 @代表已經(jīng)安裝成功 # yum list installed 查看已安裝的包 # yum grouplist 查看包組 # yum groupinstall "包組" 安裝包組 # yum groupremove "包組" # md5sum +包名 直接校驗(yàn)第三方提供的軟件包 課后實(shí)戰(zhàn)1. 需求1Centos默認(rèn)使用自帶的國外源,由于網(wǎng)絡(luò)問題請(qǐng)將其替換為國內(nèi)的清華源、阿里云源,163源,sohu源其中之一 2. 需求2開發(fā)人員需要安裝某個(gè)軟件包(epel源中有),發(fā)現(xiàn)現(xiàn)有yum源中沒有,需要運(yùn)維協(xié)助配置EPEL源(兩種方式搭建EPEL源) 3. 需求3給開發(fā)人員搭建能夠提供指定軟件包的安裝源,如zabbix的yum源 puppet: http://yum./puppetlabs-release-el-6.noarch.rpm http://yum./puppetlabs-release-el-7.noarch.rpm http://yum./puppetlabs-release-fedora-20.noarch.rpm Zabbix: http://repo./zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm http://repo./zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm http://repo./zabbix/4.1/rhel/7/x86_64/zabbix-release-4.1-1.el7.noarch.rpm |
|