概述:本章內容重要講解yum(rpm前端工具)和rpm源碼編譯安裝,前者可以有效的解決軟件安裝過程中存在的依賴關系,從而提升我們使用系統的效率;后者是我們進階Linux系統,了解程序包安裝的過程本質
1、YUM: Yellowdog Update Modifier
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器?;赗PM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
yum 的宗旨是自動化地升級,安裝/移除rpm 包,收集rpm 包的相關信息,檢查依賴性并自動提示用戶解決。yum 的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http 或ftp 站點,也可以是本地軟件池,但必須包含rpm 的header,header 包括了rpm 包的各種信息,包括描述,功能,提供的文件,依賴性等。正是收集了這些header 并加以分析,才能自動化地完成余下的任務。
yum 的理念是使用一個中心倉庫(repository)管理一部分甚至一個distribution 的應用程序相互關系,根據計算出來的軟件依賴關系進行相關的升級、安裝、刪除等等操作,減少了Linux 用戶一直頭痛的dependencies 的問題。這一點上,yum 和apt 相同。apt 原為debian 的deb 類型軟件管理所使用,但是現在也能用到RedHat 門下的rpm 了。
yum 主要功能是更方便的添加/刪除/更新RPM 包,自動解決包的倚賴性問題,便于管理大量系統的更新問題。
yum 可以同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf),自動解決增加或刪除rpm 包時遇到的依賴性問題,保持與RPM 數據庫的一致性。
yum repository: yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下)
文件服務器:
ftp:// FTP服務器站點
http:// web服務器站點
file:/// 本地軟件池
yum命令的用法:
yum命令使用的前提是要有yum資源庫(Repository)
而yum資源庫路徑則是repodata目錄的父目錄路徑
例如:http://10.1.0.1/cobbler/ks_mirror/7/repodata
資源庫地址url:http://10.1.0.1/cobbler/ks_mirror/7/
yum [options] [command] [package …]
選項:
-c:指定配置文件
-e 靜默執行
-t 忽略錯誤
-R[分鐘] 設置yum處理一個命令的最大等待時間
-y 對所有的提問都自動應答“yes”;
-v:詳細模式;
-d:設置調試等級(0-10);
-e:設置錯誤等級(0-10);
-C:完全從緩存中運行,而不去下載或者更新任何頭文件。
–skip-broken 忽略依賴問題
–nogpgcheck 忽略GPG驗證
–installroot=/SOME/TO/PATH將該軟件安裝在/SOME/TO/PATH中而不使用默認路徑
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啟用此處指定的repo
–noplugins:禁用所有插件
主要常用命令用法格式
顯示倉庫列表:
#yum repolist [all|enabled|disabled]
顯示程序包
顯示yum可安裝和可更新的RPM包:
#yum list [all | glob_exp1] [glob_exp2] […]
#yum list {available|installed|updates} [glob_exp1][…]
顯示已安裝的包
#yum list installed
已安裝且不在資源庫的包
#yum list extras
查看程序包information:
顯示指定的可安裝和可更新的RPM包的描述信息和概要信息;
#yum info [package_name]
已安裝包的信息
#yum info installed
以指定的關鍵字搜索程序包名及summary信息(哪些軟件包中含有關鍵字都會被搜索出來,包括注釋中含有);
#yum search string1 [string2] […](關鍵字)
軟件安裝:
根據yum配置文件(/etc/yum.conf與/etc/yum.repo.d/*.repo)的設置來從repository中下載安裝軟件
#yum install package1_name [package2_name] […]
本地安裝(下載好的直接安裝)
#yum localinstall package_name
重新安裝包
#yum reinstall package1_name [package2_name] […]
更新軟件
列出已安裝程序包的可用更新
#yum list updates
檢查可用程序升級:
#yum check-update
更新特定軟件
根據yum配置文件(/etc/yum.conf與/etc/yum.repo.d/*.repo)的設置來從repository中下載更新軟件
#yum update package1_name [package2_name] […]
#yum upgrade package1_name [package2_name] […]
本地更新(下載好的直接更新)
#yum localupdate package1_name [package2_name] […]
降級
#yum downgrade package1 [package2] […]
全部更新
#yum update
注意:更新系統也可以用yum工具,但是強烈建議不要亂升級,因為新系統可能在升級過程中和之后都有可能出現不穩定安全因素,所以如果要想使用新系統,最好是直接安裝新系統,因為linux本身是支持多操作系統的,所以可以同時存在幾個系統,這樣用哪個就啟動那個,如果新系統有問題,也還是可以重新啟動進入老版系統
卸載軟件
只刪除軟件包而保留配置文件和數據文件
#yum remove package1 [package2] […]
刪除軟件和其所有文件
#yum erase package1 [package2] […]
查看指定的特性(可以是某文件)是由哪個程序包所提供:
#yum provides | whatprovides feature1 [feature2][…]
清理本地緩存:
#yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]
#yum clean packages 清除臨時包文件(/var/cache/yum 下文件)
#yum clean headers 清除rpm頭文件
#yum clean oldheaders 清除舊的rpm頭文件
#yum clean all 清除所有yum倉庫緩存(包括軟件本身及列表)
構建緩存:
#yum makecache
注意:以上清除緩存和構建緩存可以更新本機列表與yum服務器同步
查看yum事務歷史:
yum history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
日志:/var/log/yum.log
顯示軟件包依賴關系
顯示rpm軟件包的所有依賴關系。
#yum deplist package_name
顯示rpm軟件包的依賴關系;
#yum resolvedep package_name
包組管理的相關命令:
安裝程序組group
yum groupinstall group1 [group2] […]
升級程序組group
yum groupupdate group1 [group2] […]
查看可能批量安裝的列表
yum grouplist [hidden] [groupwildcard] […]
顯示程序組group信息
yum groupinfo group1 […]
刪除程序組group
yum groupremove group1 [group2] […]
自動搜索最快鏡像插件:yum install yum-fastestmirror
安裝yum圖形窗口插件:yum install yumex
yum-config-manager:用來管理yum配置選項和yum資料庫
是一個程序,可以管理主要yum配置選項、 切換的資料庫是啟用還是禁用,并添加新的存儲庫。
yum-config-manager [options]
yum-config-manager –save 保存當前選項
yum-config-manager –enable “倉庫名”啟用repo資料倉庫
yum-config-manager –disable “倉庫名”禁用repo資料倉庫
yum-config-manager –add-repo=ADDREPO 從指定的文件或 url添加(并啟用)repo資料倉庫
例如:yum-config-manager –add-repo=http://172.16.0.1/cobbler/ks_mirror/CentOS-Xx86_64/
注意:yum-config-manager –add-repo=ADDREPO 會在/etc/yum.repo.d/下創建對應的.repo文件
其他yum工具
yum-debug-restore
yum-builddep
yumdb
yumdownloader
yum-complete-transaction
yum-debug-dump
yum-groups-manager
與yum相關文件及目錄的功能和作用
存放與目標“容器倉庫”對比更新的rpm列表記錄;更新軟件時與本機rpm數據庫做對比,以此判斷下載那個軟件。
/var/cache/yum
存放軟件升級需求、版本之間的差異和數字證書信息
/var/lib/yum
/etc/yum/pluginconf.d/
/etc/yum/version-groups.conf
yum倉庫
yum的repo配置文件中可用的變量:
$releasever: 當前OS的發行版的主版本號
$arch: 平臺, i386,i486,i586,x86_64等
$basearch:基礎平臺; i386
$YUM0-$YUM9:自定義變量
實例:
http://server/centos/$releasever/$basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384
創建yum倉庫:
createrepo [options] <directory>
yum的配置文件分為兩部分:main 和repository
main部分定義了全局配置選項,整個yum 配置文件應該只有一個main。常位于/etc/yum.conf 中。
repository部分定義了每個源/服務器的具體配置,可以有一到多個。常位于/etc/yum.repo.d 目錄下的各文件中。
yum客戶端配置文件:
/etc/yum.conf:為所有倉庫提供公共配置
[main]
cachedir=/var/cache/yum
#yum 緩存的目錄,yum 在此存儲下載的rpm 包和數據庫,默認設置為/var/cache/yum
keepcache=0
#安裝完成后是否保留軟件包,0為不保留(默認為0),1為保留
debuglevel=2
#Debug 信息輸出等級,范圍為0-10,缺省為2
logfile=/var/log/yum.log
#yum 日志文件位置。用戶可以到/var/log/yum.log 文件去查詢過去所做的更新。
pkgpolicy=newest
#包的策略。一共有兩個選項,newest 和last,這個作用是如果你設置了多個repository,而同一軟件在不同的repository 中同時存在,yum 應該安裝哪一個,如果是newest,則yum 會安裝最新的那個版本。如果是last,則yum 會將服務器id 以字母表排序,并選擇最后的那個服務器上的軟件安裝。一般都是選newest。
distroverpkg=redhat-release
#指定一個軟件包,yum 會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm 包。
tolerant=1
#有1和0兩個選項,表示yum 是否容忍命令行發生與軟件包有關的錯誤,比如你要安裝1,2,3三個包,而其中3此前已經安裝了,如果你設為1,則yum 不會出現錯誤信息。默認是0。
exactarch=1
#有1和0兩個選項,設置為1,則yum 只會安裝和系統架構匹配的軟件包,例如,yum 不會將i686的軟件包安裝在適合i386的系統中。默認為1。
retries=6
#網絡連接發生錯誤后的重試次數,如果設為0,則會無限重試。默認值為6.
obsoletes=1
#這是一個update 的參數,具體請參閱yum(8),簡單的說就是相當于upgrade,允許更新陳舊的RPM包。
plugins=1
#是否啟用插件,默認1為允許,0表示不允許。我們一般會用yum-fastestmirror這個插件。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h
installonly_limit = 5
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
除了上述之外,還有一些可以添加的選項,如:
exclude=selinux* // 排除某些軟件在升級名單之外,可以用通配符,列表中各個項目要用空格隔開,這個對于安裝了諸如美化包,中文補丁的朋友特別有用。
gpgcheck=1 // 有1和0兩個選擇,分別代表是否是否進行gpg(GNU Private Guard) 校驗,以確定rpm 包的來源是有效和安全的。這個選項如果設置在[main]部分,則對每個repository 都有效。默認值為0。
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
在Centos7.2系統中/etc/yum.repo.d/下默認有如下文件:
其中
CentOS-Base.repo 是yum 網絡源的配置文件
CentOS-Media.repo 是yum 本地源的配置文件
倉庫指向的定義:
[repositoryID]
代表“容器倉庫”或yum服務器的名稱。中括號必須存在,名字可以任意但不能重復,否則yum會不知道該到哪里找容器相關軟件列表文件
name=Some name for this repository
只是說明此容器的意義,重要性不高
mirrorlist=:
列出容器可以使用的鏡像站點(如果不想使用,可以用#批注掉這行)
baseurl=url://path/to/repository/
容器的實際地址(網址、路徑),非常重要(容器的實際地址必須要有一個名為repodata的目錄存在,以此可以判斷哪些地址是容器的實際地址)
enabled={1|0}
容器的啟用與禁用(默認不添加此列即為啟用,正常啟用為1,禁用為0)
gpgcheck={1|0}
rpm數字證書,是否啟用校驗rpm文件內的數字證書
gpgkey=URL
數字證書的公鑰文件的所在位置。一般使用默認即可
enablegroups={1|0} (如果不想使用,可以用#批注掉這行)
failovermethod={roundrobin|priority}
默認為: roundrobin,意為隨機挑選;
cost= 默認為1000
例如:
我Centos7.2默認yum設置文件CentOS-Base.repo
根據教室環境自定義的配置文件
Centos7.2默認yum設置文件CentOS-Media.repo
[root@localhost old]# cat CentOS-Media.repo # CentOS-Media.repo # # This repo can be used with mounted DVD media, verify the mount point for # CentOS-7. You can use this repo and yum to install items directly off the # DVD ISO that we release. # # To use this repo, put in your DVD and use it with the other repos too: # yum --enablerepo=c7-media [command] # # or for ONLY the media repo, do this: # # yum --disablerepo=\* --enablerepo=c7-media [command] [c7-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
在baseurl 中第2個路徑為/media/cdrom(即為光盤掛載點)
將enabled=0改為1 可以啟用本地源
注意:如果要使用本地源作為yum倉庫,要將yum 網絡源配置文件改名為CentOS-Base.repo.bak,否則會先在網絡源中尋找適合的包,改名之后直接從本地源讀取。
yum源倉庫安裝軟件程序包是一定的順序根據查詢這些配置文件,來確定從哪里下載安裝軟件的,第一次匹配到對應的程序包就會安裝,并且不會繼續向后查找,而且如果中間發生錯誤就會立刻停止,不在查詢讀取別的配置文件。
關于repo 文件的格式
所有repository 服務器設置都應該遵循如下格式:
[serverid] name=Some name for this server baseurl=url://path/to/repository/
-
serverid 是用于區別各個不同的repository,必須有一個獨一無二的名稱;
-
name 是對repository 的描述,支持像$releasever $basearch這樣的變量;
-
baseurl 是服務器設置中最重要的部分,只有設置正確,才能從上面獲取軟件。它的格式是:
baseurl=url://server1/path/to/repository/ url://server2/path/to/repository/ url://server3/path/to/repository/
其中url 支持的協議有 http:// ftp:// file:// 三種。baseurl 后可以跟多個url,你可以自己改為速度比較快的鏡像站,但baseurl 只能有一個,也就是說不能像如下格式:
baseurl=url://server1/path/to/repository/ baseurl=url://server2/path/to/repository/ baseurl=url://server3/path/to/repository/
其中url 指向的目錄必須是這個repository header 目錄的上一級,它也支持$releasever $basearch 這樣的變量。
url 之后可以加上多個選項,如gpgcheck、exclude、failovermethod 等,比如:
[updates-released] name=Fedora Core $releasever - $basearch - Released Updates baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch gpgcheck=1 exclude=gaim failovermethod=priority
其中gpgcheck,exclude 的含義和[main] 部分相同,但只對此服務器起作用,failovermethode 有兩個選項roundrobin 和priority,意思分別是有多個url可供選擇時,yum 選擇的次序,roundrobin 是隨機選擇,如果連接失敗則使用下一個,依次循環,priority 則根據url 的次序從第一個開始。如果不指明,默認是roundrobin。
關于變量
-
$releasever:代表發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。
-
$arch:cpu體系,如i686,athlon等
-
$basearch:cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。
導入GPG KEY
yum 可以使用gpg 對包進行校驗,確保下載包的完整性,所以我們先要到各個repository 站點找到gpg key,一般都會放在首頁的醒目位置,一些名字諸如RPM-GPG-KEY-CentOS-7 之類的純文本文件,把它們下載下來,然后用rpm –import RPM-GPG-KEY-CentOS-7 命令將key 導入。
使用第三方軟件庫
Centos/RHEL默認的yum軟件倉庫非常有限,僅僅限于發行版本那幾張盤里面的常規包和一些軟件包的更新,利用RpmForge,可以增加非常多的第三方rpm軟件包。RpmForge庫現在已經擁有超過10000種的CentOS的軟件包,被CentOS社區認為是最安全也是最穩定的一個第三方軟件庫。
1、安裝yum-priorities插件
這個插件是用來設置yum在調用軟件源時的順序的。因為官方提供的軟件源,都是比較穩定和被推薦使用的。因此,官方源的順序要高于第三方源的順序。如何保證這個順序,就需要安裝yum-priorities這插件了。
# yum -y install yum-priorities
2、安裝完yum-priorities插件后需要設置/etc/yum.repos.d/ 目錄下的.repo相關文件(如CentOS-Base.repo),在這些文件中插入順序指令:priority=N (N為1到99的正整數,數值越小越優先)
一般配置[base], [addons], [updates], [extras] 的priority=1,[CentOSplus], [contrib] 的priority=2,其他第三的軟件源為:priority=N (推薦N>10)
以CentOS-Base.repo 為例:
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 priority=1
3、下載與安裝相應rpmforge的rpm文件包
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
4、安裝DAG的PGP Key
# rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
5、驗證rpmforge的rpm文件包
# rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
6、安裝rpmforge的rpm文件包
# rpm -i rpmforge-release-0.5.2-2.el5.rf.i386.rpm
7、設置/etc/yum.repos.d/rpmforge.repo文件中源的級別
[root@TS-DEV yum.repos.d]# cat rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 5 - dag ### URL: http://rpmforge.net/ [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 priority=12
8、測試安裝
# yum install htop
其他第三方軟件庫如 EPEL(Extra Packages for Enterprise Linux ) 和 RPMFusion 的安裝與使用和RPMForge類似,可自行查找資料安裝。
二、程序包編譯
程序包編譯安裝:
Application-VERSION-release.src.rpm –> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝
源代碼–>預處理–>編譯–>匯編–>鏈接–>執行
編譯安裝
C代碼編譯安裝三步驟:
1、 ./configure:
(1) 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生成makefile
(2) 檢查依賴到的外部環境,如依賴的軟件包
2、 make:根據makefile文件,構建應用程序
3、 make install:復制文件到相應路徑
開發工具:
autoconf: 生成configure腳本
automake:生成Makefile.in
注意:安裝前查看INSTALL, README
開源程序源代碼的獲?。?/p>
官方自建站點:
apache.org (ASF: Apache Software Foundation)
mariadb.org
…
代碼托管:
SourceForge.net
Github.com
code.google.com
c/c++編譯器: gcc (GNU C Complier)
編譯C源代碼:
準備: 提供開發工具及開發環境
開發工具: make, gcc等
開發環境:開發庫,頭文件
glibc:標準庫
實現:通過“包組”提供開發組件
CentOS 6:
Development Tools
Server Platform Development
CentOS 7:
Development Tools
Development and Creative Workstation
編譯安裝
第一步: configure腳本
選項:指定安裝位置、指定啟用的特性
–help: 獲取其支持使用的選項
選項分類:
安裝路徑設定:
–prefix=/PATH: 指定默認安裝位置,默認為/usr/local/
–sysconfdir=/PATH:配置文件安裝位置
System types:支持交叉編譯
Optional Features: 可選特性
–disable-FEATURE
–enable-FEATURE[=ARG]
Optional Packages: 可選包,
–with-PACKAGE[=ARG],依賴包
–without-PACKAGE,禁用依賴關系
第二步: make
第三步: make install
安裝后的配置:
(1) 二進制程序目錄導入至PATH環境變量中;
編輯文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2) 導入庫文件路徑
編輯/etc/ld.so.conf.d/NAME.conf
添加新的庫文件所在目錄至此文件中
讓系統重新生成緩存:
ldconfig [-v]
(3) 導入頭文件
基于鏈接的方式實現:
ln -sv
(4) 導入幫助手冊
編輯/etc/man.config|man_db.conf文件
添加一個MANPATH
如何使用光盤當作本地yum倉庫:
(1) 掛載光盤至某目錄,例如/media/cdrom
# mount /dev/cdrom /media/cdrom
(2) 創建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
方法一:直接在/etc/yum.repos.d/CentOS-Base.repo如寫入[cdrom]部分內容
方法二:
使用yum-config-manager –add-repo=ADDREPO命令
#yum-config-manager –add-repo=file:///media/cdrom
同時最好在~/.bashrc中添加掛載命令
# mount /dev/cdrom /media/cdrom
這樣每次重新都可以自動掛載了
2、源碼編譯安裝http
注意:首先在安裝http服務時,我們需要安裝公鑰和Development Tools程序包組
實現下載或在光盤中獲取
[root@centos7 ~]# rpm –import RPM-GPG-KEY-CentOS-7
[root@centos7 ~]# yum groupinstall Development\ Tools
然后獲取http的源碼包
我自己是在我們教室環境的ftp服務器上下載的httpd-2.2.29.tar.bz2,大家可以到各類源碼包官網下載
解壓
[root@centos7 ~]# tar jxf httpd-2.2.29.tar.bz2
然后在解壓出來的目錄內httpd-2.2.29中最好先讀取一下INSTALL、README
可以運行
注意:一下操作必須在解壓后的程序目錄內進行例如httpd-2.2.29中
./configure –help
查看configure腳本的幫助文檔
其中一下兩項為比較重要,一個是安裝程序對應的配置文件路徑一個是安裝程序位置,可缺省,已默認路徑安裝
默認httpd安裝路徑為/usr/local/apache2
–sysconfdir=DIR
–prefix=$HOME
格式類此
[root@centos7 httpd-2.2.29]# ./configure –prefix=/usr/local/apache –sysconfdir=/etc/apache
我自己就默認執行
[root@centos7 httpd-2.2.29]# ./configure
執行完之后
在/usr/local目錄下還沒有生成相應的目錄
運行命令
make
運行完成后
運行命令
make install
運行結束安裝成功
二、作業:
1、輸入若干個數值存入數組中,采用冒泡算法進行升序或降序排序
#!/bin/bash # #輸入若干個數值存入數組中,采用冒泡算法進行升序或降序排序 read -p "請輸入一組數字并有空格隔開,以完成數組賦值:" -t 15 -a num echo "${num[@]}" declare -i i=1 n=${#num[@]} j=$[${#num[@]}-1] for ((i=1;$i<=$j;i++)) do for((m=1;$m<=$[$j+1-$i];m++)); do if [ ${num[$[$n-$m]]} -lt ${num[$[$n-$m-1]]} ];then ZanCun=${num[$[$n-$m]]} num[$[$n-$m]]=${num[$[$n-$m-1]]} num[$[$n-$m-1]]=$ZanCun #echo ${num[@]} else continue fi done done echo ${num[@]}
2、刪除kernel包后,無法啟動,并恢復之
#rpm -e kernel --nodeps
注意:利用yum刪除也可以,但是一般不注意容易會刪除包括kernel和及其依賴包,要修復則會好很長時間
檢測上面刪除操作成功與否
#echo $?
0
重啟系統
#shutdown -r now
已經無法啟動了,重新啟動,并在如下界面單擊Esc鍵
選擇光盤啟動
選擇第三選救援修復模式
選擇語言環境
下圖提示你,原先正常的系統根路徑已經變為/mnt/sysimage.而我們進去后默認為救援系統所在的根路徑.
可以通過chroot /mnt/sysimage來使我們進入救援模式后直接切換原系統的根目錄下
選擇shell,啟動shell,進入命令行模式
根據下圖步驟分別完成,掛載光盤,并安裝kernel程序包;
注意:一開始我并沒有在原系統/mnt/sysimage根目錄下,即沒有用chroot /mnt/sysimage切換根目錄;
所以安裝程序包時,需要指定根目錄/mnt/sysimage,即最后一步中–roo=/mnt/sysimage的選項;
否則,就像圖中,沒指定的哪一步失??;成功后重啟,系統就可以正常使用了
原創文章,作者:NameLess,如若轉載,請注明出處:http://www.www58058.com/41039
yum源的配置與使用,是我們以后工作,學習中離不開的工具,需要熟練掌握,同時今后為了使用軟件的新功能,或新特性而需要我們進行編譯安裝。這些都需要我們熟練掌握。文章內容完整,整體讀下來,能學到很多東西,建議對編譯安裝后的操作進行一個詳細的介紹,這也是很重要的部分。