yum的功能:
在我們使用rpm包安裝程序時,各個程序包之間可能存在非常嚴重的依賴關系,這就導致我們在安裝一個包的同時還需要安裝其他存在依賴關系的包,因此我們可以使用rpm包的前端管理工具yum,可通過yum所支持的文件共享機制來解決各個rpm包之間的依賴關系。
yum倉庫的配置文件:
/etc/yum.conf:為所有倉庫提供配置參數。
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 ###(是否保存緩存中的已經被下載安裝的rpm包) 會刪除已緩存的rpm包 debuglevel=2 logfile=/var/log/yum.log ###日志文件存放路徑 exactarch=1 ###到倉庫中下載rpm包的時候要與當前主機的版本完全匹配才能安裝 obsoletes=1 gpgcheck=1 ###是否檢查rpm包的來源合法性及數據包的完整 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
/etc/yum.repos.d/*.repo:為指定的倉庫提供配置
[repo_ID] ###指定ID,不能重復,不能省略 name=String ###指定倉庫名稱 baseurl=倉庫的訪問路徑 ###指定倉庫的訪問路徑,不能省略(repodate所在目錄的父目錄即為倉庫所在路徑) 查看是否配置成功可以通過yum repolist查看 enabled={1|0} ###是否啟用此倉庫 默認啟用,省略后默認值為0 gpgcheck={1|0} ###是否檢查完整性和來源合法性,不能省略 gpgkey=公鑰文件 ###可以在本地,也可是服務器端路徑 cost=定義此倉庫開銷 ###默認為1000 開銷越小 優先級越高
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倉庫
由于在某些特定的情況下,比如某些公司不能通過服務器訪問外網等,需要我們自行配置和創建yum倉庫,那么就可以采取如下四種辦法解決:
方法1、使用本地掛載光盤的方法來創建yum倉庫
a、首先要查看我們的光盤是否已經掛載,可通過df命令查看,如果沒有掛載可通過mount命令進行掛載,如果時cenots6可以通過如下方式掛載。
root@cenots6.8 ~ # cd /misc ####只要訪問/misc/cd 目錄 ,光盤就會自動掛載到/misc/cd下 root@cenots6.8 /misc # ls -a . .. root@cenots6.8 /misc # cd cd root@cenots6.8 /misc/cd # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 121455724 4401412 110878008 4% / tmpfs 502068 76 501992 1% /dev/shm /dev/sda1 194241 34100 149901 19% /boot /dev/sr0 3824484 3824484 0 100% /media/CentOS_6.8_Final /dev/sr0 3824484 3824484 0 100% /misc/cd #######此處可以看到光盤已經掛載到了/misc/cd上
b、掛載完光盤后,我們cd/misc/cd目錄下后,就可以看到一個repodata目錄,該目錄存在的位置就是我們要指向的yum倉庫的路徑,RPM-GPG-KEY-CentOS-7就是公鑰(/etc/pki/目錄下也可以獲取公鑰)。
root@cenots6.8 /misc/cd # ls CentOS_BuildTag EULA images Packages repodata RPM-GPG-KEY-CentOS-Debug-6 RPM-GPG-KEY-CentOS-Testing-6 EFI GPL isolinux RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6 TRANS.TBL
c、接下來我們就可以配置yum倉庫,vim /etc/yum.repos.d/CentOS-Local.repo注意這里我們所創建的文件必須要以repo結尾,這樣才能夠被識別生效,配置參數如下
[cdrom] name= cdrom baseurl=file:///misc/cd enabled=1 gpgcheck=0
d、執行yum repolist命令,查看是否正常工作。
root@cenots6.8 /etc/yum.repos.d # yum repolist 已加載插件:fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile cdrom | 4.0 kB 00:00 ... 倉庫標識 倉庫名稱 狀態 cdrom cdrom 6,696 repolist: 6,696
注意:baseurl可以指多條路徑,但是要求每條路徑指向的內容是一樣的,增加冗余能力
方法2、通過createrepo自行創建yum倉庫
a、首先創建一個目錄用于存儲rpm包,mkdir /testdir/testrepo,并cd到該目錄下
b、訪問指定的路徑,查找自己的所要下載rpm包到/testdir/testrepo路徑下,然后createrepo /testdir/testrepo創建yum倉庫
root@cenots6.8 /testdir/testrepo # ls tree-1.5.3-3.el6.x86_64.rpm root@cenots6.8 /testdir/testrepo # createrepo ./ Spawning worker 0 with 1 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete root@cenots6.8 /testdir/testrepo # ls ###創建完成之后我們會發現目錄下多了一個repodata目錄 此時手動創建yum倉庫成功 repodata tree-1.5.3-3.el6.x86_64.rpm
d、配置/etc/yum.repos.d/CentOS-Local.repo文件
[tree] name=tree baseurl=file:///testdir/testrepo gpgcheck=0 enabled=1
e、yum repolist查看生效有否。
root@cenots6.8 /etc/yum.repos.d # yum repolist 已加載插件:fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile cdrom | 4.0 kB 00:00 ... tree 倉庫名稱 狀態 cdrom cdrom 6,696 tree tree 1 repolist: 6,697
方法3、基于Ftp的方式配置yum倉庫
a、安裝vsftpd,輸入yum install vsftpd,在/var/ftp/pub目錄下創建rpm目錄,并且把/testdir/testrepo中的全部文件(/*)拷貝到rpm目錄中,然后執行service vsftpd start開啟vsftpd服務。
b、配置/etc/yum.repos.d/local.repo文件
[Ftprepo] name=Ftp-repo baseurl=ftp://192.168.1.103/pub/rpm gpgcheck=0 enabled=1
c、yum repolist查看生效與否。
方法4、基于htp的方式配置yum倉庫
a、安裝httpd,輸入yum install httpd,然后輸入service http start啟動,把/var/ftp/pub/目錄下的所有文件復制到/var/www/htm/目錄下。
b、在瀏覽器中熱輸入http://192.168.1.103/rpm
c、 編輯/etc/yum.repos.d/local.repo文件配置倉庫路徑。
d、yum repolist查看生效與否。
注意:/etc/yum.repos.d/目錄下,執行mv CentOS-Base.repo CentOS-Base.bak,這樣CentOS-Bse.repo就停止工作也做備份,以后重新使用把bak的后綴名改成repo即可,禁用啟用yum倉庫也可以使用yum-config-manager –disable “倉庫名" 禁用倉庫, yum-config-manager –enable “倉庫名” 啟用倉庫。
程序包的編譯安裝
程序包的安裝編譯:
1、拿到源代碼,并解壓:
# tar xf package-version.tar.{gz|bz2|xz}
注意:展開后的目錄名通常為package-version
2、切換至源碼目錄中
# cd package-version
3、執行configure腳本
# ./configure
4、編譯
# make
5、安裝
# make install
建議:安裝前先查看INSTALL,README
configure腳本功能:檢查編譯環境是否滿足編譯需求,并定義當前程序編譯時啟用哪個特性或功能,以及安裝路徑的定義等等;
GNU/make:項目管理工具 通過make命令來調用GCC編譯工具來實現編譯
configure腳本的通用功能:
1、指定安裝路徑:
–prefix=/usr/local/packagename 指定安裝路徑
–sysconfdir=/etc/packagename 指定配置文件的存放路徑
2、指定啟用/禁用的特性:
–enable-feature: 例如–enable-fpm
–disable-feature: 例如 –disable-socket
3、指定所依賴功能、程序或文件
–with-function:啟用某功能
–without-function:禁用某功能
不同的程序,其configure腳本功能不同,要獲取幫助:./configure –help
安裝后的配置:
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
vim /etc/mandb.conf
MANDATORY_MANPATH /usr/local/NAME/man
應用舉例:源碼安裝apache
1、下載httpd到指定目錄中。
root@cenots6.8 ~ # lftp http://mirrors.sohu.com/apache/ cd 成功, 當前目錄=/apache lftp mirrors.sohu.com:/apache> ls lftp mirrors.sohu.com:/apache> get httpd-2.2.31.tar.bz2 5610489 bytes transferred in 51 seconds (106.8K/s) lftp mirrors.sohu.com:/apache> bye root@cenots6.8 ~ # ls aa cc dir1 httpd-2.2.31.tar.bz2 install.log.syslog 模板 圖片 下載 桌面 bb dir ee install.log 公共的 視頻 文檔 音樂
2、解壓程序包,并切換到nginx-1.9.9目錄中
root@cenots6.8 ~ # tar xf httpd-2.2.31.tar.bz2 root@cenots6.8 ~ # ls aa cc dir1 httpd-2.2.31 install.log 公共的 視頻 文檔 音樂 bb dir ee httpd-2.2.31.tar.bz2 install.log.syslog 模板 圖片 下載 桌面 root@cenots6.8 ~ # cd httpd-2.2.31 root@cenots6.8 ~/httpd-2.2.31 # ls ABOUT_APACHE CHANGES httpd.dsp libhttpd.dep NOTICE server acinclude.m4 config.layout httpd.mak libhttpd.dsp NWGNUmakefile srclib Apache.dsw configure httpd.spec libhttpd.mak os support build configure.in include LICENSE README test BuildAll.dsp docs INSTALL Makefile.in README.platforms VERSIONING BuildBin.dsp emacs-style InstallBin.dsp Makefile.win README-win32.txt buildconf httpd.dep LAYOUT modules ROADMAP
3、配置configure命令指定安裝路徑和配置文件的存放路徑
./configure --prefix=/usr/local/http2 --sysconfdir=/etc/http2/
注意:如果在執行此命令報錯,error requires the *** library.可通過yum search ***,然后執行yum install ***—devel.x86_64 (支包一般都在***—devel包中)。
4、make
5、make install
6、cd /usr/local/http2/bin 執行./apachectl start
7、netstat -ant
8、iptables -F
9、在瀏覽器處輸入ip地址查看狀態即可。
yum的常用命令及選項
yum的常用命令:
顯示倉庫列表:yum repolist
顯示程序包:yumlist
安裝程序包:yum install package
升級程序包:yum update package
降級程序包:yum downgrade package
卸載程序包:yum remove | erase package
檢查可用升級:yum check-update
查看程序包信息:yum info
查看指定的特定是由哪個程序包所提供的:yum provides | whatprovides feature
清理本地緩存:yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]
構建緩存:yum makecache
搜索:yum search string1 [string2] […]
查看指定程序包所依賴的能力:yum deplist package1 [package2] […
查看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 redo 6 重新執行編號為6的操作
yum history undo 6 撤銷之前編號6 的操作
查看yum的日志:/var/log/yum.log
創建yum倉庫:createrepo /path/to/dir
包組管理的相關命令:
yum groupinstall group1 [group2] […]
yum grouplist [hidden] [groupwildcard] […]
yum groupremove group1 [group2] […]
yum groupinfo group1 […]
通過包組提供開發組件:
centOS5:“Development Tools”和“Development Libraries”
centos6:Develop Tools Server Platform Development
centos7:Develop Tools
yum的命令行選項:
–nogpgcheck:禁止進行gpg check
-y: 自動回答為“ yes”
-q:靜默模式
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啟用此處指定的repo
–noplugins:禁用所有插件
原創文章,作者:Naruto,如若轉載,請注明出處:http://www.www58058.com/39759
文章對內容總結的很全面,同時通過多種方式自建yum源,并配置使用,加深了自己對yum工具的使用。如果在用詞上更專業點,會讓文章看起來更優秀哦。