8.1? 使用rpm命令-安裝-查看-卸載-rpm? 軟件包
8.2? yum? 管理軟件包
8.3? 實(shí)戰(zhàn) tar 源碼包管理-srpm? 源碼包安裝方法
8.1? 軟件包的管理
軟件包的類型
rpm? 二進(jìn)制包??? 已經(jīng)使用GCC? 編譯后的
tar? 源碼包?????? 需需編譯
8.1.1? rpm? 軟件包的管理
rpm 包的獲取方式
1? centos 系統(tǒng)鏡像光盤
2? 網(wǎng)站rpmfind.net??
3? 比如安裝mysql,nginx ,軟件,我們可以去它的官方網(wǎng)站,
如果需要通過光盤獲取,
掛載mount/dev/sr0? / mnt? 后找到
卸載umount /mnt? 或者umount? /dev/sr0
rpm? 包格式的說明
? 8.1.2? 按rpm? 軟件
RPM?? 工具分為安裝。查詢,驗(yàn)證,更新,刪除等操作
命令格式:rpm? 參數(shù)軟件包
? 參數(shù)
-i? 是install? 的意思,安裝軟件包
-v? 顯示附加信息,提供更多纖細(xì)信息
-V 校驗(yàn),對已經(jīng)安裝的軟件進(jìn)行校驗(yàn)
-h --hash? 安裝時輸出#####標(biāo)記
互動:rpm使用時,什么情況下使用軟件包名,什么時候使用軟件包全名
全名:在安裝和更新時候使用
包名:對已經(jīng)安裝過的軟件包進(jìn)行操作時,比如查找已經(jīng)安裝的某個包,卸載包等
使用包名,它默認(rèn)是去目錄/var/lib/rpm? 下面進(jìn)行收縮,當(dāng)一個rpm 包安裝到系統(tǒng)上之后,安裝信息就會保存早本地
rpcbind/ rpm/ rpm-state/
[root@xueshen65 ~]# ls /var/lib/rpm
Basenames? ? Dirnames? Installtid? Obsoletename? Providename? Sha1header? Triggername
Conflictname? Group? ? Name? ? ? ? Packages? ? ? Requirename? Sigmd5
[root@xueshen65 ~]# rpm -q lrzsz
lrzsz-0.12.20-36.el7.x86_64
1? 從本地安裝
如果沒有?
先掛載??
mount? /dev/cdrom?? /mnt?
zsh 就會顯示所有的路徑
8.1.2.2? 從網(wǎng)上下載直接按照centos epel? 擴(kuò)展源
首先查看是否能上網(wǎng)
[root@xueshen65]~# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
獲取http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
警告:/var/tmp/rpm-tmp.TUuoEF: 頭V3 RSA/SHA256 Signature, 密鑰 ID 352c64e5: NOKEY
準(zhǔn)備中...? ? ? ? ? ? ? ? ? ? ? ? ? ################################# [100%]
正在升級/安裝...
? 1:epel-release-7-12? ? ? ? ? ? ? ? ################################# [100%]
[root@xueshen65]~#
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
安裝centos epel? 擴(kuò)展yum? 源 注意? epel? 是對centos7? 系統(tǒng)中自帶的base 源的擴(kuò)展有依賴
針對有依賴關(guān)系的安裝包,直接用yum 方式安裝
8.1.3 rpm? 插敘功能
-a? all? 查詢所有已經(jīng)安裝的軟件包
-f file? 系統(tǒng)文件名? 查詢文件系統(tǒng)屬于哪個軟件包,反向查詢
-i? 顯示已經(jīng)安裝的rpm軟件包信息,后面直接跟包名
-l? list? 查詢軟件包中文安裝的位置
-p? 查詢未安裝軟件包的相關(guān)信息,后面跟軟件的包名
-R? 查詢軟件包的依賴性
[root@xueshen65]~# rpm -qa zsh
zsh-5.0.2-31.el7.x86_64
[root@xueshen65]~# rpm -qf /usr/bin/find
findutils-4.5.11-6.el7.x86_64
首先使用which 查詢在哪個位置
查看安裝的包是干嘛用的
rpm? -qpi? 安裝路徑
查詢沒有安裝的RPM包,要加參數(shù) -p
rpm? -qi? lrzsz??
8.14 查看軟件包內(nèi)容是否被修改?? 用于查看命令有沒有被黑客修改
rpm? -V 包名
rpm -Vf?? 文件路徑
[root@xueshen65]~# which find
/usr/bin/find
[root@xueshen65]~# rpm -qf /usr/bin/find
findutils-4.5.11-6.el7.x86_64
[root@xueshen65]~# rpm -Vf /usr/bin/find?? 檢查具體文件
互動;? 查看系統(tǒng)中所有的rpm包安裝的文件有沒有被黑客修改??
[root@xueshen65]~# rpm -Va??
假如改得多? 可以用重定向
校驗(yàn)時參考了/var/lib/rpm???? 目錄下數(shù)據(jù)庫信息
[root@xueshen65]~# md5sum /etc/passwd
3e90c88954be6365b2c6818db8670384? /etc/passwd
[root@xueshen65]~# echo 123456 | md5sum
f447b20a7fcbf53a5d5be013ea0b15af? -
rpm?? 卸載和升級
用法:? rpm -e? 包名 ?
rpm? -e? zsh?????
? 如果有依賴關(guān)系?? 使用rpm? -e?? nodeps???? lrzsz???
升級?
[root@xueshen65]~# rpm -Uvh /mnt/Packages/zsh-5.0.2-31.el7.x86_64.rpm
手動解決rpm? 依賴關(guān)系
如何配置yum? 源??
8.2.1.2? 網(wǎng)絡(luò)yum? 源
1 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#wget? 下載文件? -O? 把下載的文件存到另外一個文件中
2 sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
yum?? clean? all?
yum?? list??
就可以下載了?
? yum?? install -y?? httpd?? 安裝軟件包? -y? 直接按照
?yum? update? kernel? 升級
yum? info? httpd?? 查詢rpm 包作用
yum? provides? /usr/bin/find?? 查看命令是安哥軟件包安裝的
yum?? -y?? remove?? 包名? 卸載包
yum?? search?? keyword??? #安裝關(guān)鍵字搜索軟件包
yum? 報錯,主義的幾個小問題
1? 確定光盤是否連接,光盤是否瓜子啊
2 配置文件中格式是否正確,字母,符號有沒有寫錯,掛載點(diǎn)和配置文件匯總設(shè)置的是否一致,
3 網(wǎng)絡(luò)源需要上網(wǎng),操作和RPM? 類似,只是會自動安裝依賴
update? 不加任何包,表示整個系統(tǒng)升級
8.2.3? yum? 安裝工具軟件包組
yum? grouplist? 查看哪些軟件包組
? 也可以使用yum groupinstall? "開發(fā)工具"
8.3? 實(shí)戰(zhàn)tar 源碼包管理-srpm? 源碼包安裝方法
8.3.1? 源碼安裝nginx??
? 1 編譯環(huán)境如gcc 和gcc-c++? 編譯器,make
2? 準(zhǔn)備:nginx-1.12.2.tar.gz
部署Nginx?
yum? -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel??
zlib? 壓縮庫,pcre :支持正則表達(dá)式,地址重寫rewrite?? OpenSSL 提供https? 支持
.開始安裝
源碼編譯三把斧
./configure?? ,make ,make?? install??
上傳nginx 到linux上,
1 tar -zxvf? nginx-1.12.2.tar.gz??
2 cd? nginx-1.12.2?
3? ./configure?? --prefix=/usr/local/nginx???? 指定安裝路徑
4 make?? -j? 4
這樣速度很快?
5? make? install??
./configure??
a? 指定安裝路徑,例如 --prefix=/usr/local/nginx?
b? 啟用或禁用某項(xiàng)功能。例如 --enable-ssl,? --disable-filter --with-http_ssl_module??
c? 和其他軟件關(guān)聯(lián),例如--with-prce?
d? 檢查安裝環(huán)境,例如是否有編譯器GCC,是否滿足軟件的依賴需求
最終生成Makefile??
make? -j? 4? 按Makefile? 文件編譯,可以使用-j 4? 指定核心CPU編譯,提升技術(shù)
make? install? 按Makefile定義的文件路徑安裝
make? clean? // 清除上次的make命令產(chǎn)生的object和? 即可要重新執(zhí)行configure時,需要執(zhí)行make? clean? all?
8.3.2? 刪除源碼包
安裝完,刪除
make uninstall
有時刪除不干凈,所以建議安裝時,在configure步驟添加一個:--prefix 參數(shù)
這樣刪除或備份時,直接對刪除--prefix 指定的安裝目錄操作就可以了
8.3.3?? 實(shí)戰(zhàn)2? 源碼編譯錯誤5種完美解決方案
?tar?? -jxvf?? extundelete-0.2.4.tar.bz2?
cd?? extundelete-0.2.4.tar.bz2?
./configure???
第一?? cd/mnt/Packages/
rpm? -ivh?? ext?? 補(bǔ)齊??
第二???? ls?? *ext2fs*?? 查找關(guān)鍵字
第三? ls *2fs*?? 查找部分關(guān)鍵字
第四? 上網(wǎng)? 查rpm?? http://.rpmseek.com/index.html??
第五?? 使用yum?? 去搜索
yum? search? ext2fs??
差頭文件
./configure??
make? -j 4?
make install
8.3.4? 安裝.src.rpm? 源碼包的方法
srpm:? 就是這個rpm檔案里面有源碼
rpmbuild? --rebuild lrzsz-0.12.20-27.1.el6.src.rpm???
皆可以了