一、Linux下軟件包的管理
1、軟件安裝方式
① RPM包管理(需要單獨解決依賴問題)
② YUM包管理(需要有網絡及YUM倉庫的支持,會自動從互聯網下載軟件,自動解決依賴)
③ 源碼安裝(安裝過程比較復雜,源碼安裝三步走。優點:定制性很強)
軟件:主線版(mainline),穩定版(stable)
2、源碼安裝的配置過程
在Linux系統中,源碼安裝一共分為三步(三步走):
第一步:配置過程(配置軟件的安裝路徑)
第二步:編譯過程(把軟件由源代碼編譯成可以安裝的程序)
第三步:安裝過程(把編譯后的程序進行安裝)
# ./configure && make && make install
3、詳解源碼安裝的配置過程(定制)
# cd 軟件源碼包
# ./configure [選項]
# ./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
在Linux操作系統中,make主要功能就是將其他語言的源代碼打包成Linux可以識別安裝的程序。編譯過程需要一個gcc軟件(開發工具)的支持!
5、安裝過程
# make install
6、axel多線程下載軟件源碼安裝
第一步:獲取axel多線程下載軟件
第二步:上傳axel軟件包到Linux系統中
第三步:安裝axel軟件(源碼安裝三步走=>配置+編譯+安裝)
① 對軟件進行解壓縮操作
# tar -zxf axel-2.4.tar.gz
或
# tar -xf axel-2.4.tar.gz
② 使用cd命令切換到axel目錄中
# cd axel-2.4
③ 對axel軟件進行配置(不采用默認配置)
# ./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
設置axel軟件的安裝路徑為/opt/axel
# ./configure --prefix=/opt/axel
④ 對axel軟件進行編譯與安裝
# make
# make install
或
# make && make install
&& :邏輯與,如果make編譯成功會立即執行右邊的make install安裝程序,如果make編譯失敗,則以上程序會停止執行,然后拋出錯誤。
第四步:測試與使用
[root@yunwei ~]# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
bash: axel: command not found...
出現以上問題的主要原因在于:我們沒有采用默認的安裝方式,所以導致當我們執行axel命令時,其找不到對應的軟件。
第五步:解決命令無法訪問問題
第一種方式:采用軟鏈接形式(類似Windows中的快捷方式)
第二種方式:使用環境變量(重要,Linux中的環境變量)
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創建一個快捷方式到/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、使用環境變量解決command not found
環境變量
終端 => 命令 => 系統的環境變量(PATH => /etc/profile) => 一些命令的存放路徑
axel多線程下載軟件,通過源碼的方式安裝成功后,由于沒有使用默認的安裝路徑,導致axel這個命令沒有出現在系統的環境變量中,所以其會出現command not found。
第一步:查詢當前系統的環境變量
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
第二步:把axel所在目錄添加到環境變量
① 使用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
第三步:測試axel命令是否可以使用
# axel http://mirrors.163.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
9、解決源碼安裝軟件手冊找不到問題
問題重現:
[root@localhost axel]# man axel
No manual entry for axel
原因:找不到指定的man文檔
解決方案:
[root@localhost axel]# vim /etc/man.config
...
增加如下內容:
MANPATH /opt/axel/share/man
10、卸載源碼安裝的軟件
第一步:進入到源碼的安裝包中
# cd axel-2.4
# make uninstall => 安裝軟件的安裝包等程序
# make distclean => 卸載編譯與配置過程
第二步:刪除軟件的目錄
# rm -rf /opt/axel
二、YUM源概述
1、yum源作用
軟件包管理器,類似360的軟件管家
2、yum源優點
RPM安裝(下載軟件、單獨安裝、需要解決依賴關系)
源碼安裝(下載軟件的源碼包,解壓,進入目錄=>配置+編譯+安裝)
yum源:相當于rpm軟件包管理的升級版
能夠解決軟件包之間的依賴關系,提高運維人員的工作效率。
yum源底層還是基于RPM進行軟件安裝操作的,所以yum安裝軟件后,我們也可以通過rpm -qa |grep 軟件名稱
3、yum源分類
☆ 本地yum源
yum倉庫在本地(系統光盤/鏡像文件) => 不需要網絡的支持
☆ 網絡yum源
yum倉庫不在本地,在遠程
- 國內較知名的網絡源(aliyun源,163源,sohu源,知名大學開源鏡像等)
阿里源:https://opsx.alibaba.com/mirror
網易源:http://mirrors.163.com/
搜狐源:http://mirrors.sohu.com/
清華源:https://mirrors.tuna.tsinghua.edu.cn/ - 國外較知名的網絡源(centos源、redhat源、擴展epel源等)
- 特定軟件相關的網絡源(Nginx、MySQL、Zabbix等)
4、本機yum源備份(重要)
第一步:使用cd命令切換到/etc/yum.repos.d目錄
# cd /etc/yum.repos.d/
第二步:對所有的倉庫文件進行備份
# tar -zcf repo.tar.gz *.repo
第三步:刪除所有的以.repo結尾的倉庫文件
# rm -rf *.repo
三、本地YUM源配置
1、本地YUM配置
① 使用光盤鏡像作為YUM源倉庫
② 下載很多軟件,使用軟件包作為YUM源倉庫
2、使用光盤鏡像作為YUM源倉庫
第一步:在VMware系統中裝在CentOS7.6系統的光盤鏡像
第二步:把光盤掛載到某個目錄下
# cd ~# rm -rf /mnt/*
# mount -o ro /dev/sr0 /mnt
選項說明:
-o :掛載方式,ro代表以readonly=>只讀的方式進行掛載rw代表以read/write=>讀寫的方式進行掛載
# 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
卸載或解掛可以使用umount /mnt
第三步:把光盤掛載添加到開機啟動文件中
# chmod +x /etc/rc.local
# echo 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local
/etc/rc.local,屬于系統的開機啟動文件。系統啟動后,會自動加載并執行這個文件
第四步:編寫本地YUM倉庫文件
# cd /etc/yum.repos.d/
創建一個以*.repo結尾的文件,名稱任意
# vim local.repo
[local]
name=local yum
baseurl=file:///mnt
gpgcheck=0
enabled=1
# yum clean all
# yum makecache
# yum repolist all注:file://本地協議路徑,后面跟倉庫的具體路徑
yum倉庫的標準格式
[倉庫標識名稱],名稱任意,在一個文件中可以擁有多個標識
name=倉庫名稱
baseurl=倉庫的路徑,支持多種格式,file://本地路徑,ftp://,http://或https://
gpgcheck=gpg密鑰,值可以是0(代表不檢測),1(代表檢測,如果是1,下方還要定義一個gpgkey=密鑰連接)
enabled=是否啟動當前倉庫,值可以0,也可以是1,默認為1,代表啟動倉庫
第五步:測試本地YUM倉庫是否可用
# yum install httpd -y
3、擴展man 5
在Linux系統中,給定我們一個配置文件,怎么查詢這個文件中每一個選項的作用呢?
# man 命令
擴展:man 5 配置文件名稱
# man 5 yum.conf
四、網絡YUM源配置
1、網絡YUM源的分類
① 使用比較知名平臺的YUM源(阿里云、騰訊、清華)
② 有些特定軟件(如Nginx、MySQL、Zabbix等等)需要根據官網文檔自定義網絡YUM源
2、使用知名平臺的YUM源
阿里源:https://opsx.alibaba.com/mirror網易源:http://mirrors.163.com/搜狐源:http://mirrors.sohu.com/清華源:https://mirrors.tuna.tsinghua.edu.cn/
騰訊源、華為源…
百度搜索 => 華為 mirror鏡像源
案例:配置阿里云的yum源
第一步:百度,搜索你想要的YUM源,進入官網,找到CentOS
第二步:根據官網提示,配置阿里云的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、擴展:EPEL源配置
什么是EPEL源?
答:EPEL是對官網源的一個擴展。
CentOS-Base.repo文件 => 基礎源(官方在帶的YUM源)
epel.repo文件 => 擴展源,是對官方YUM源的一個補充
# yum install epel-release -y
比如:會跑的小火車就是在epel源中
# yum install sl -y
# sl
4、特定軟件的YUM源配置
比如特殊的幾個軟件,如Nginx、MySQL、Zabbix
Nginx:http://www.nginx.org
MySQL:https://www.mysql.com/
Zabbix:https://www.zabbix.com/
找到官方文檔,把YUM源配置,寫入到一下文件中(repo文件)
# cd /etc/yum.repos.d
# vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
清理緩存:
# yum clean all
# yum makecache
安裝Nginx:
# yum install nginx -y
五、自建YUM源倉庫
1、緩存安裝軟件包
什么時候需要緩存軟件?
- 下次還需要安裝相同版本的軟件包
- 由于網絡原因導致網絡安裝非常慢,將軟件包緩存下來,配置本地倉庫
2、如何緩存軟件安裝包
# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever 定義軟件包的緩存路徑
keepcache=1 1開啟緩存;0關閉
debuglevel=2
logfile=/var/log/yum.log
...
3、把軟件及依賴軟件全部下載到某個路徑
只下載不安裝軟件:
# yum install --downloadonly --downloaddir=保存路徑 軟件名稱
案例:下載samba軟件及依賴軟件
# mkdir /soft
# yum install --downloadonly --downloaddir=/soft samba
4、自定義YUM倉庫
第一步:在系統中安裝createrepo制作倉庫的軟件
# yum install createrepo -y
第二步:把/soft文件夾做成一個本地的自建倉庫
# createrepo /soft
第三步:在/etc/yum.repos.d目錄中創建一個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