本文由讀者投稿,做者:肖輝node
Github 地址:https://github.com/xiaohui96python
已受權標爲原創,所得讚揚所有歸做者全部,歡迎讚揚!git
目前在長期穩定運行的網站服務器、處理大量數據的集羣系統以及須要協同工做的環境中都大量採用Linux系統。github
相較於Windows系統而言,Linux系統具備如下優點:vim
穩定且有效率;centos
免費或少量費用;緩存
漏洞少且快速修補;安全
多任務多用戶;服務器
更加安全的用戶及文件權限策略;架構
適合小內核程序的嵌入系統;
相對不耗資源
常見的Linux系統有哪些?
紅帽企業版(RedHat Enterprise Linux):RHEL是全世界內使用最普遍的Linux系統。
社區企業操做系統(Communicity Enterprise Operating System, CentOS ):RHEL從新編譯發佈的免費Linux系統。
Fedora:紅帽公司發佈的桌面版系統套件。
openSUSE:德國的一款著名Linux系統。
Gentoo:具備極高的自定製性,操做複雜。
Debian:穩定性、安全性強,能夠良好地支持各類硬件架構。
Ubuntu:對新款硬件具備極強的兼容能力。
RPM和Yum軟件倉庫
RPM是紅帽的的軟件包管理器,相似於Windows系統中的控制面板。
在RPM公佈以前,Linux系統中安裝軟件只能採用源碼包的安裝方式,費時費力。
軟件之間的依賴關係甚至須要運維的同事自行編譯代碼來解決。
RPM機制則是爲解決這些問題而設計的。
常見的RPM軟件包命令以下:
安裝軟件:rpm -ivh filename.rpm 升級軟件:rpm -Uvh filename.rpm 卸載軟件:rpm -e filename.rpm 查詢軟件描述信息:rpm -qpi filename.rpm 列出軟件文件信息:rpm -qpl filename.rpm 查詢文件屬於哪一個RPM:rpm -qf filename
儘管RPM可以幫助用戶查詢軟件相關的依賴關係,但過程依舊複雜,特別是在某些大型軟件的狀況下依舊須要運維的同事來解決。
Yum軟件倉庫則能夠根據用戶的要求分析出所需軟件包及其相關的依賴關係,自動從服務器下載軟件包並安裝到系統。
Yum軟件倉庫技術拓撲圖
經常使用的Yum命令 列出全部倉庫:yum repolist all 列出倉庫中全部軟件包:yum list all 查看軟件包信息:yum info 軟件包名稱 安裝軟件包:yum install 軟件包名稱 從新安裝軟件包:yum reinstall 軟件包名稱 升級軟件包:yum update 軟件包名稱 移除軟件包:yum remove 軟件包名稱 清除全部倉庫緩存:yum clean all 檢查可更新的軟件包:yum check-update 檢查系統中已安裝的軟件包組:yum grouplist 安裝指定的軟件包組:yum groupinstall 軟件包組 移除指定的軟件包組:yum groupremove 軟件包組 查詢指定的軟件包組信息:yum groupinfo 軟件包組
然而沒有註冊的RHEL是沒法使用yum來安裝軟件的,爲此須要將yum源更換成CentOS的免費源來解決包的依賴問題。
更換yum源 打開虛擬機(做者的紅帽是裝在虛擬機上的)終端執行 rpm -qa | grep yum 系統將會顯示自帶的yum源, 刪除系統自帶的yum組件 rpm -qa | grep yum | xargs rpm -e --nodeps 進入[網易163源鏡像地址](http://mirrors.163.com),在路徑centos/7/os/x86_64/Packages/下載(能夠在物理機上下載或者在虛擬機 上使用wget下載)python-iniparse-0.4-9.el7.noarch、python-iniparse-0.4-9.el7.noarch、yum-3.4.3-161.el7.centos.noarch、 yum-metadata-parser-1.1.4-10.el7.x86_6四、yum-plugin-fastestmirror-1.1.31-50.el7.noarch這五個包。
安裝軟件包 rpm -ivh yum-* # 此時會報依賴的錯誤 rpm >= 0:4.11.3-35 is needed by yum-3.4.3-161.el7.centos.noarch 下載rpm-4.11.3-35.el7.x86_64包並從新安裝 rpm -Uvh rpm-4.11.3-35.el7.x86_64.rpm --nodeps rpm -ivh yum-* 更新yum源文件,能夠下載使用163的yum源文件CentOS6-Base-163,放在/etc/yum.repo.d目錄下
vim /etc/yum.repos.d/CentOS-Base.repo 內容以下,將$releasever改爲7便可 # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] # name=CentOS-$releasever - Base - 163.com 改爲 name=CentOS-7 - Base - 163.com # baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ 改爲 baseurl=http://mirrors.163.com/centos/7/os/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7 #released updates [updates] # name=CentOS-$releasever - Updates - 163.com 改爲 name=CentOS-7 - Updates - 163.com # baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/ 改爲 baseurl=http://mirrors.163.com/centos/7/updates/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] # name=CentOS-$releasever - Extras - 163.com 改爲 name=CentOS-7 - Extras - 163.com # baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/ 改爲 baseurl=http://mirrors.163.com/centos/7/extras/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] # name=CentOS-$releasever - Plus - 163.com 改爲 name=CentOS-7 - Plus - 163.com # baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/ 改爲 baseurl=http://mirrors.163.com/centos/7/centosplus/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7 #contrib - packages by Centos Users [contrib] # name=CentOS-$releasever - Contrib - 163.com 改爲 name=CentOS-7 - Contrib - 163.com # baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/ 改爲 baseurl=http://mirrors.163.com/centos/7/contrib/$basearch/ #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
清除yum緩存 yum clean all # 生成緩存 yum makeche # 查看新源 yum repolist yum repolist repo id repo name status !base/x86_64 CentOS-$7 - Base - 163.com 8,652 !extras/x86_64 CentOS-$7 - Extras - 163.com 275 !updates/x86_64 CentOS-$7 - Updates - 163.com 1,707 repolist: 10,634 yum源已更換成功,下面就能夠自由使用yum安裝軟件啦。 ## 實例 以安裝pam-devel爲例,介紹一下如何使用yum安裝和移除軟件包。 # 安裝pam-devel [root@xiaohui ~]# yum install pam-devel ......(省略) Running transaction Updating : pam-1.1.8-22.el7.x86_64 1/3 Installing : pam-devel-1.1.8-22.el7.x86_64 2/3 Cleanup : pam-1.1.8-9.el7.x86_64 3/3 Verifying : pam-devel-1.1.8-22.el7.x86_64 1/3 Verifying : pam-1.1.8-22.el7.x86_64 2/3 Verifying : pam-1.1.8-9.el7.x86_64 3/3 Installed: pam-devel.x86_64 0:1.1.8-22.el7 Dependency Updated: pam.x86_64 0:1.1.8-22.el7 Complete! 表明安裝成功。 # 移除pam-devel [root@xiaohui ~]# yum remove pam-devel ......(省略) ================================================================================ Remove 1 Package Installed size: 528 k Is this ok [y/N]: y Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Erasing : pam-devel-1.1.8-22.el7.x86_64 1/1 Loading mirror speeds from cached hostfile Verifying : pam-devel-1.1.8-22.el7.x86_64 1/1 Removed: pam-devel.x86_64 0:1.1.8-22.el7 Complete! 表明移除成功。
附:
本文所需rpm及repo: