1.應(yīng)用程序與系統(tǒng)命令
應(yīng)用程序與系統(tǒng)命令的關(guān)系
典型應(yīng)用程序的目錄結(jié)構(gòu)
Linux文件
常見(jiàn)的軟件包封裝類型
Linux內(nèi)核簡(jiǎn)介
2.RPM
2.1 rpm包管理工具
RPM軟件包管理器Red-Hat Package Manager
●由Red Hat公司提出,被眾多Linux發(fā)行版所采用
●建立統(tǒng)一的文件數(shù)據(jù)庫(kù)
●詳細(xì)記錄軟件包安裝、卸載、升級(jí)等變化信息
●自動(dòng)分析軟件包依賴關(guān)系
RPM包命名原則
2.2 rpm命令的格式
rpm命令能夠?qū)崿F(xiàn)幾乎所有RPM軟件包的管理功能
執(zhí)行“man rpm”命令可以獲得關(guān)于rpm命令的詳細(xì)幫助信息
rpm命令功能:
-
查詢、驗(yàn)證rpm軟件包的相關(guān)信息
-
安裝、升級(jí)、卸載RPM軟件包
-
維護(hù)RPM數(shù)據(jù)庫(kù)信息等綜合管理操作
2.3.查詢r(jià)pm軟件包
查詢已安裝的rpm軟件信息
rpm -q [子選項(xiàng)] [軟件名 ]
常用選項(xiàng)
-qa、-qi、-ql、-qf、-qc、-qd
查詢r(jià)pm軟件包文件中的信息
rpm -qp [子選項(xiàng)] rpm包文件名
常用選項(xiàng)
-qpi、-qpl、-qpc、-qpd
● 使用"-q"選項(xiàng)時(shí),實(shí)際上調(diào)用了==”/usr/bin/rpmquery"==程序完成查詢工作
● 軟件包查詢主要包括兩種情況:
(1)查詢系統(tǒng)中已經(jīng)安裝的軟件包信息;
(2)查詢尚未安裝的RPM包文件的信息;
● 對(duì)于"-qa "查詢選項(xiàng),命令參數(shù)(即軟件包名)是非必須的;
● 一般查詢時(shí),軟件名不需要指定版本號(hào).
[root@clr ~]# rpm -q rpm #查詢r(jià)pm軟件包是否已經(jīng)安裝
rpm-4.11.3-45.el7.x86_64
[root@clr ~]# rpm -q yum #查詢yum軟件包是否已經(jīng)安裝
yum-3.4.3-168.el7.centos.noarch
[root@clr ~]# systemctl status nfs #查看nfs服務(wù)的狀態(tài)
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@clr ~]# rpm -q nfs-utils #查詢nfs-utils軟件包是否已經(jīng)安裝
nfs-utils-1.3.0-0.68.el7.x86_64
rpm -qa命令
[root@clr ~]# rpm -qa |wc -l #統(tǒng)計(jì)當(dāng)前系統(tǒng)中,以rpm方式安裝的軟件包有多少個(gè)
1464
[root@clr ~]# rpm -qa |grep nfs #統(tǒng)計(jì)當(dāng)前系統(tǒng)中,是否有以rpm方式安裝的nfs軟件包
libnfsidmap-0.25-19.el7.x86_64
nfs4-acl-tools-0.3.3-21.el7.x86_64
nfs-utils-1.3.0-0.68.el7.x86_64
rpm -qi命令
[root@clr ~]# rpm -qi yum #顯示已安裝的yum軟件包的詳細(xì)信息
Name : yum
Version : 3.4.3
Release : 168.el7.centos
Architecture: noarch
Install Date: 2023年03月23日 星期四 00時(shí)42分15秒
Group : System Environment/Base
Size : 5829237
License : GPLv2+
Signature : RSA/SHA256, 2020年10月15日 星期四 03時(shí)21分12秒, Key ID 24c6a8a7f4a80eb5
Source RPM : yum-3.4.3-168.el7.centos.src.rpm
Build Date : 2020年10月02日 星期五 01時(shí)03分49秒
Build Host : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://yum.baseurl.org/
Summary : RPM package installer/updater/manager
Description :
Yum is a utility that can check for and automatically download and
install updated RPM packages. Dependencies are obtained and downloaded
automatically, prompting the user for permission as necessary.
rpm -ql命令
[root@clr ~]# rpm -ql yum #顯示已安裝的指定軟件yum的文件列表
/etc/logrotate.d/yum
/etc/yum
/etc/yum.conf
/etc/yum.repos.d
/etc/yum/fssnap.d
/etc/yum/pluginconf.d
/etc/yum/protected.d
/etc/yum/vars
/etc/yum/version-groups.conf
/usr/bin/yum
/usr/lib/python2.7/site-packages/rpmUtils
/usr/lib/python2.7/site-packages/rpmUtils/__init__.py
rpm -qc命令
[root@clr ~]# rpm -qc yum #列出已安裝的指定軟件yum的配置文件
/etc/logrotate.d/yum
/etc/yum.conf #yum的配置文件,文件名
/etc/yum/version-groups.conf
[root@clr ~]# rpm -qd yum #列出已安裝的指定軟件yum的軟件包文檔所在位置
/usr/share/doc/yum-3.4.3/AUTHORS
/usr/share/doc/yum-3.4.3/COPYING
/usr/share/doc/yum-3.4.3/ChangeLog
/usr/share/doc/yum-3.4.3/INSTALL
/usr/share/doc/yum-3.4.3/PLUGINS
/usr/share/doc/yum-3.4.3/README
/usr/share/doc/yum-3.4.3/TODO
/usr/share/doc/yum-3.4.3/comps.rng
/usr/share/man/man5/yum.conf.5
/usr/share/man/man8/yum-shell.8
/usr/share/man/man8/yum.8
[root@clr ~]# rpm -qR yum #列出已安裝的指定軟件yum依賴的軟件包及文件
/usr/bin/python
config(yum) = 3.4.3-168.el7.centos
cpio
diffutils
pygpgme
pyliblzma
python >= 2.4
python(abi) = 2.7
python-iniparse
python-sqlite
python-urlgrabber >= 3.10-8
pyxattr
rpm >= 0:4.11.3-22
rpm-python
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
yum-metadata-parser >= 1.1.0
yum-plugin-fastestmirror
rpmlib(PayloadIsXz) <= 5.2-1
rpm -qf命令
[root@clr ~]# rpm -qc yum #列出已安裝的指定軟件yum的配置文件
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
[root@clr ~]# rpm -qf /etc/yum.conf #查詢已安裝的指定軟件yum,屬于哪個(gè)安裝包(-qf命令參數(shù)是文件名或目錄名)
yum-3.4.3-168.el7.centos.noarch
[root@clr ~]# rpm -qc httpd #列出已安裝的指定軟件httpd的配置文件
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
[root@clr ~]# rpm -qf /etc/httpd/conf/httpd.conf #查詢已安裝的指定軟件httpd,屬于哪個(gè)安裝包(-qf命令參數(shù)是文件名或目錄名)
httpd-2.4.6-95.el7.centos.x86_64
df命令
[root@clr /mnt/Packages]# mount /dev/sr0 /mnt^C #將光盤鏡像文件掛載到/dev/sr0/mnt目錄下
[root@clr /mnt/Packages]# df #查看光盤鏡像文件的掛載情況
文件系統(tǒng) 1K-塊 已用 可用 已用% 掛載點(diǎn)
devtmpfs 1997348 0 1997348 0% /dev
tmpfs 2013076 0 2013076 0% /dev/shm
tmpfs 2013076 12500 2000576 1% /run
tmpfs 2013076 0 2013076 0% /sys/fs/cgroup
/dev/sda1 38817264 5671400 33145864 15% /
tmpfs 402616 12 402604 1% /run/user/42
tmpfs 402616 0 402616 0% /run/user/0
/dev/sr0 4600876 4600876 0 100% /mnt
[root@clr ~]# cd /mnt
[root@clr /mnt]# ls #Packages目錄中包含有所有鏡像文件的安裝包
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@clr /mnt]# cd Packages/
[root@clr /mnt/Packages]# ls^C #由于鏡像文件安裝包過(guò)多,會(huì)霸屏顯示,因此此處省略查看Packages目錄中安裝包
rpm -qpi命令
[root@clr /mnt/Packages]# rpm -qpi zip-3.0-11.el7.x86_64.rpm #查看指定軟件包的詳細(xì)信息
警告:zip-3.0-11.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
Name : zip
Version : 3.0
Release : 11.el7
Architecture: x86_64
Install Date: (not installed)
Group : Applications/Archiving
Size : 815173
License : BSD
Signature : RSA/SHA256, 2016年11月21日 星期一 05時(shí)04分58秒, Key ID 24c6a8a7f4a80eb5
Source RPM : zip-3.0-11.el7.src.rpm
rpm -qpl命令
[root@clr /mnt/Packages]# rpm -qpl zip-3.0-11.el7.x86_64.rpm #查詢指定軟件包的文件列表
警告:zip-3.0-11.el7.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
/usr/bin/zip
/usr/bin/zipcloak
/usr/bin/zipnote
/usr/bin/zipsplit
/usr/share/doc/zip-3.0
/usr/share/doc/zip-3.0/CHANGES
/usr/share/doc/zip-3.0/LICENSE
/usr/share/doc/zip-3.0/README
/usr/share/doc/zip-3.0/README.CR
/usr/share/doc/zip-3.0/TODO
/usr/share/doc/zip-3.0/WHATSNEW
/usr/share/doc/zip-3.0/WHERE
/usr/share/doc/zip-3.0/algorith.txt
/usr/share/man/man1/zip.1.gz
rpm -qpc命令
[root@clr /mnt/Packages]# rpm -qpc yum-3.4.3-168.el7.centos.noarch.rpm #查詢指定軟件包的配置文件
警告:yum-3.4.3-168.el7.centos.noarch.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
rpm -qpd命令
[root@clr /mnt/Packages]# rpm -qpd yum-3.4.3-168.el7.centos.noarch.rpm #查詢指定軟件包幫助文檔的位置
警告:yum-3.4.3-168.el7.centos.noarch.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
/usr/share/doc/yum-3.4.3/AUTHORS
/usr/share/doc/yum-3.4.3/COPYING
/usr/share/doc/yum-3.4.3/ChangeLog
/usr/share/doc/yum-3.4.3/INSTALL
/usr/share/doc/yum-3.4.3/PLUGINS
/usr/share/doc/yum-3.4.3/README
/usr/share/doc/yum-3.4.3/TODO
/usr/share/doc/yum-3.4.3/comps.rng
/usr/share/man/man5/yum.conf.5
/usr/share/man/man8/yum-shell.8
/usr/share/man/man8/yum.8
2.4 安裝、升級(jí)、卸載rpm軟件包
安裝或升級(jí)rpm軟件
rpm [選項(xiàng)] rpm包文件…
常用選項(xiàng)
-i、-U、-F
卸載指定的rpm軟件
rpm -e 軟件名
輔助選項(xiàng)
–force、–nodeps、-h、-v
rpm --nodeps命令
rpm -evh命令
rpm -Uvh命令
[root@clr /mnt/Packages]# rpm -Uvh httpd-2.4.6-95.el7.centos.x86_64.rpm #升級(jí)某個(gè)指定軟件包,若未安裝過(guò),則進(jìn)行安裝。
警告:httpd-2.4.6-95.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f4a80eb5: NOKEY
準(zhǔn)備中... ################################# [100%]
軟件包 httpd-2.4.6-95.el7.centos.x86_64 已經(jīng)安裝 #查詢?cè)揾ttpd安裝包是否已安裝并需要升級(jí),未安裝則進(jìn)行重新安裝
rpm -Fvh命令
[root@clr /mnt/Packages]# rpm -Fvh httpd-2.4.6-95.el7.centos.x86_64.rpm #升級(jí)某個(gè)軟件包,若未安裝過(guò),則放棄安裝。
警告:httpd-2.4.6-95.el7.centos.x86_64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID f
2.5維護(hù)數(shù)據(jù)庫(kù)
● RPM數(shù)據(jù)庫(kù):用于記錄在Linux系統(tǒng)中安裝、卸載、升級(jí)應(yīng)用程序的相關(guān)信息,由RPM包管理系統(tǒng)自動(dòng)完成維護(hù),一般不需要用戶干預(yù).
● 當(dāng)RPM數(shù)據(jù)庫(kù)發(fā)生損壞,且Llinux系統(tǒng)無(wú)法自動(dòng)完成修復(fù)時(shí),將導(dǎo)致無(wú)法使用rpm命令正常地安裝、卸載及查詢軟件包,這時(shí)可以使用–rebuildbd或–initdb重建rpm數(shù)據(jù)庫(kù).
● 在Linux/Unix應(yīng)用領(lǐng)域,相當(dāng)一部分軟件廠商會(huì)對(duì)發(fā)布的軟件包進(jìn)行數(shù)字簽名,以確保軟件的完整性、合法性。對(duì)于用戶來(lái)說(shuō)。可以利用軟件官方提供的公鑰文件,自動(dòng)對(duì)下裁的軟件包進(jìn)行驗(yàn)證,如果在安裝軟件時(shí),出現(xiàn)驗(yàn)證失敗的提示,則表示該軟件包可能已經(jīng)被非法篡改。
總結(jié):
在沒(méi)有導(dǎo)入用于數(shù)字簽名驗(yàn)證的公鑰文件之前,安裝光盤中的一部分RPM軟件包時(shí)會(huì)報(bào)錯(cuò)。需要向RPM數(shù)據(jù)庫(kù)中導(dǎo)入位于光盤根目錄下的公鑰文件。
mount /dev/sr0 /mnt/ #掛載光盤鏡像文件
rpm --import /mnt/RPM-GPG-KEY-CentOS-7 #導(dǎo)入公鑰文件
3.yum
3.1 配置本地yum源倉(cāng)庫(kù)
yum軟件包管理器:能夠解決軟件包的依賴關(guān)系,實(shí)現(xiàn)一鍵安裝軟件包。
[root@clr /mnt]# cd /etc/yum.repos.d/ #yum軟件包安裝倉(cāng)庫(kù)文件
[root@clr /etc/yum.repos.d]# pwd
/etc/yum.repos.d
配置本地yum源倉(cāng)庫(kù)步驟如下所示:
(1)掛載光盤鏡像到指定位置/mnt;
[root@clr ~]# mount /dev/sr0 /mnt
#[root@clr ~]# mount /dev/cdrom /mnt #與第一句作用相同
[root@clr ~]# df
文件系統(tǒng) 1K-塊 已用 可用 已用% 掛載點(diǎn)
devtmpfs 1997348 0 1997348 0% /dev
tmpfs 2013076 0 2013076 0% /dev/shm
tmpfs 2013076 12500 2000576 1% /run
tmpfs 2013076 0 2013076 0% /sys/fs/cgroup
/dev/sda1 38817264 5671740 33145524 15% /
tmpfs 402616 12 402604 1% /run/user/42
/dev/sr0 4600876 4600876 0 100% /mnt
tmpfs 402616 0 402616 0% /run/user/0
(2)進(jìn)入yum倉(cāng)庫(kù)配置目錄,備份之前的*.repo原文件;
[root@clr /etc/yum.repos.d]# cd /etc/yum.repos.d/
[root@clr /etc/yum.repos.d]# mkdir repo.bak
[root@clr /etc/yum.repos.d]# mv *.repo repo.bak
(3)創(chuàng)建本地yum源配置文件
[root@clr /etc/yum.repos.d]# cd /etc/yum.repos.d/
[root@clr /etc/yum.repos.d]# vim local.repo
[local]
name=local
baseurl file:///mnt
enabled=1
gpgcheck=0
(4)刪除yum緩存并更新
[root@clr ~]# yum clean all && yum makecache
(5)測(cè)試yum源安裝是否成功
yum install -y ####軟件名
3.2 yum常用操作命令
yum list命令
[root@clr ~]# yum list available #查詢系統(tǒng)中已安裝的軟件包
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
yum info命令
[root@clr /etc/yum.repos.d]# yum info httpd #查詢軟件包的描述信息
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
已安裝的軟件包
名稱 :httpd
架構(gòu) :x86_64
版本 :2.4.6
發(fā)布 :95.el7.centos
大小 :9.4 M
源 :installed
來(lái)自源:local
簡(jiǎn)介 : Apache HTTP Server
網(wǎng)址 :http://httpd.apache.org/
協(xié)議 : ASL 2.0
描述 : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
yum search命令
[root@clr /etc/yum.repos.d]# yum search all httpd #根據(jù)某個(gè)關(guān)鍵詞httpd來(lái)查找相關(guān)的軟件包
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
========================================== 匹配:httpd ===========================================
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
httpd.x86_64 : Apache HTTP Server
yum whatprovides命令
[root@clr /etc/yum.repos.d]# yum whatprovides ifconfig #查詢ifconfig命令屬于哪個(gè)軟件包
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
源 :@anaconda
匹配來(lái)源:
文件名 :/usr/sbin/ifconfig
3.3 源碼編譯安裝軟件
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-756833.html
(1)安裝軟件依賴包
yum install -y gcc gcc-c++ make zlib-devel.x86_64 #(用于壓縮文件)pcre-devel.x86_64 #(用于正則表達(dá)式)
(2)下載,tar解壓軟件包
70 cd /opt
71 rz -E
72 ls
73 tar xf nginx-1.22.0.tar.gz
74 ls
(3)配置軟件模塊(安裝路徑、開啟或關(guān)閉模塊功能、管理服務(wù)進(jìn)程的用戶設(shè)定)
86 cd /opt
87 ls
88 cd nginx-1.22.0/
89 ./configure --prefix=/usr/local/nginx
#configure是配置模塊的目錄,這是更改的安裝路徑位置/usr/local/nginx
(4)編譯,將源碼轉(zhuǎn)換為可執(zhí)行的二進(jìn)制文件
90 make (-j2)#默認(rèn)是單核編譯,-j2代表2個(gè)cpu編譯
(5)安裝
92 make install
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-756833.html
到了這里,關(guān)于【Linux】rpm && yum(軟件包的安裝以及查詢)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!