中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux軟件包管理-rpm

發布時間:2020-07-15 10:43:48 來源:網絡 閱讀:497 作者:Aic_liao 欄目:數據庫

1.程序包管理



功能:將編譯好的應用程序的各組件組成文件打包成一個或幾個程序包文件,從而更方便快捷實現程序包的安裝升級,卸載和查詢等管理操作

 

 1 程序包的組成清單(每個程序包都單獨實現)

 文件清單

 安裝或卸載是運行的腳本

2 數據庫部分(公共)

程序包名稱和版本

依賴關系

功能說明

安裝生成各文件位置路徑及校驗碼信息




程序包我們在哪獲取了?

1)系統發行的光盤或官方文件服務器或鏡像站點:

最常用的例如像

http://mirrors.aliyun.com

http://mirrors.souhu.com

http://mirrors.163.com

2)程序官方站點下載

3)第三方組織的rpm包

(a)EPEL:紅帽站點論壇組織,提供高效的yum原 

(b)搜索引擎搜索

pkgs.org

rpmfind.net

rpm.pbone.net

4)自己做

ps:下載時注意其合法性,來源合法




rpm :readhat package manager ;rpm is package manager 

2.rpm包命名格式

tree-1.5.3-3.el6.x86_64.rpm

name-version-release.arch.rpm

versiom:是指源代碼版本

release.arch:rpm包的發行號

archetecture:架構號:i386,x64(amd64)..

  e16適用平臺 6




3.rpm 特性

1,rpm分包機制

    將一個包的功能拆成n個不同功能支包

  主包:name-version-release.arch.rpm

  支包:name-function-version-release.arch.rpm

  function:功能 例如:devel開發功能

        untils工具程序

        libs庫文件等



2,依賴關系

   依賴關系:因為linux程序做到短小精湛,程序彼此之間依賴其他程序提供的功能,然后才能運行,所以導致包和包之間有著復雜的依賴關系



3,解決依賴

前端工具的出現自動解決包之間的依賴關系;

yum :rpm包管理器的前端工具

apt-get(apt-cache)deb包管理器的前端工具 用于debian 

zypper :suse的rpm管理器前端工具

dnf:fedora-22+系統上的rpm包管理器的前端工具



4.rpm命令管理程序包:

安裝升級、卸載、查詢、效驗、數據庫維護、幫助


使用方法

rpm [OPTION] [PACKAGE_FILE]

   

安裝 


rpm     {-i|--install}    [install-options] PACKAGE_FILE ...


 [GENERAL OPTIONS]:通用選項
    -v 詳細信息輸出
    -vv 更詳細信息輸出


[install-options]:安裝選項
-h 顯示以hash標記輸出進度條
 yum -ivh
--test測試安裝(不實際安裝,僅測試,檢查依賴及沖突關系);
--nodeps 忽略依賴關系安裝;
--replacepkgs 重新安裝;
ps:rpm可以自帶腳本 --noscripts
四類:
 prelnstall:安裝過程之前運行的腳本%pre --nopre
 postinstall:安裝過程完成之后運行的腳本,%pot --post
 preuninstall:卸載過程真正開始執行之前運行的腳本 %preun 
 --nopreun
 postuninstall:卸載過程完成之后運行腳本 %postun  --nopostun
--nosignature:不檢查包簽名信息,不檢查來源合法性;
--nodigest:不檢查包完整性信息


例如:安裝tree包

[root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm 
warning: tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
	package tree-1.6.0-10.el7.x86_64 is already installed


  升級 

 rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
 rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
-U 升級或安裝
-F升級
rpm -Uvh 
rpm -Fvh
--oldpackage:降級;
--force:強制升級;升級會影響依賴關系可能
#ps:1)不要對內核做升級操作;linux支持多內核,直接安裝新版本內核即可;
#    2)如果原程序包配置文件安裝后被修改過,升級是,新版本程序提供的同一個配置文件不會
覆蓋原有版本的配置文件,會將新文件重命名后保留;


例如:驗證 如果原程序包配置文件安裝后被修改過,升級是,新版本程序提供的同一個配置文件不會覆蓋原有版本的配置文件,會將新文件重命名后保留;

[root@localhost Packages]# rpm -ivh vsftpd-3.0.2-10.el7.x86_64.rpm 
warning: vsftpd-3.0.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:vsftpd-3.0.2-10.el7              ################################# [100%]
[root@localhost Packages]# 
#安裝vsftp

[root@localhost vsftpd]# cat vsftpd.conf|wc -l
127
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# cat vsftpd.conf|wc -l
27
#修改其配置文件(刪除文件中100行內容)

[root@localhost Packages]# rpm -Uvh vsftpd-3.0.2-10.el7.x86_64.rpm --force
warning: vsftpd-3.0.2-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:vsftpd-3.0.2-10.el7              ################################# [100%]
#升級安裝vsftpd   
[root@localhost vsftpd]# cat vsftpd.conf|wc -l
27
#配置文件行數與之前安裝修改行數一樣

卸載

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
           [--notriggers] [--test] PACKAGE_NAME ...
--allmatches:刪除所有所匹配指定名稱的程序包版本
--nodeps:忽略依賴關系
--test 測試卸載,不真正執行卸載


例如:卸載vsftpd

[root@localhost Packages]# rpm -e --nodeps vsftpd 
warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsave
#卸載vsftpd包
[root@localhost ~]# ll /etc/vsftpd/
total 4
-rw-------. 1 root root 1127 Aug 23 21:10 vsftpd.conf.rpmsave
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf.rpmsave |ec -l
bash: ec: command not found...
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf.rpmsave |wc -l
27
#卸載后將配置文件備份成了一個新文件




查詢 

rpm {-q|--query} [select-options] [query-options]
1)select-options:
PACKAGE_NAME 直接給出包名查看是否已經安裝
-a,--all 查詢所有已安裝的包 rpm -qa
[root@localhost ~]# rpm -qa |grep http
-f,--file 查詢文件的生成安裝包
[root@localhost ~]# rpm -qf /etc/fstab 
setup-2.8.71-6.el7.noarch
-p --pachage 查尋未安裝的包
--whatprovides CAPABILITY:查詢指定的CAPABILITY安裝包
 --whatrequires CAPABILITY:查詢指定的CAPABILITY安裝包有哪些依賴包
2)query-options:
--changelog 查看rpm改進日志
-l, --list 安裝生成的文件
rpm -ql 查看安裝這個程序包后生成了哪些文件
-i --info 查詢程序包相關的信息(版本,大小,所屬的包組)
rpm -qi 程序名
 -c, --configfiles 查詢指定程序包提供的配置文件
 -d, --docfiles 查詢指定程序包提供的文檔
 --provides 列出程序提供的CAPABTLITY
 --scripts 查看指定程序安裝后的腳本



查詢舉例: 

#查詢某個包是否已經安裝的多個方法
[root@localhost vsftpd]# rpm -q vsftpd
package vsftpd is not installed
[root@localhost vsftpd]# rpm -qa vsftpd
[root@localhost vsftpd]# rpm -qa |grep vsftpd
[root@localhost vsftpd]# rpm -q vsftpd
vsftpd-3.0.2-10.el7.x86_64
[root@localhost vsftpd]# rpm -qa |grep vsftpd
vsftpd-3.0.2-10.el7.x86_64

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查詢某個文件是由哪個安裝包生成的
[root@localhost vsftpd]# rpm -qf /etc/vsftpd/
vsftpd-3.0.2-10.el7.x86_64

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查看某個包安裝過后生成的文件
[root@localhost vsftpd]# rpm -ql vsftpd 
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/lib/systemd/system-generators/vsftpd-generator
/usr/lib/systemd/system/vsftpd.service
/usr/lib/systemd/system/vsftpd.target
/usr/lib/systemd/system/vsftpd@.service
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-3.0.2
/usr/share/doc/vsftpd-3.0.2/AUDIT
/usr/share/doc/vsftpd-3.0.2/BENCHMARKS
/usr/share/doc/vsftpd-3.0.2/BUGS
/usr/share/doc/vsftpd-3.0.2/COPYING
/usr/share/doc/vsftpd-3.0.2/Changelog
/usr/share/doc/vsftpd-3.0.2/EXAMPLE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/logins.txt
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2/README
/usr/share/doc/vsftpd-3.0.2/FAQ
/usr/share/doc/vsftpd-3.0.2/INSTALL
/usr/share/doc/vsftpd-3.0.2/LICENSE
/usr/share/doc/vsftpd-3.0.2/README
/usr/share/doc/vsftpd-3.0.2/README.security
/usr/share/doc/vsftpd-3.0.2/REWARD
/usr/share/doc/vsftpd-3.0.2/SECURITY
/usr/share/doc/vsftpd-3.0.2/SECURITY/DESIGN
/usr/share/doc/vsftpd-3.0.2/SECURITY/IMPLEMENTATION
/usr/share/doc/vsftpd-3.0.2/SECURITY/OVERVIEW
/usr/share/doc/vsftpd-3.0.2/SECURITY/TRUST
/usr/share/doc/vsftpd-3.0.2/SIZE
/usr/share/doc/vsftpd-3.0.2/SPEED
/usr/share/doc/vsftpd-3.0.2/TODO
/usr/share/doc/vsftpd-3.0.2/TUNING
/usr/share/doc/vsftpd-3.0.2/vsftpd.xinetd
/usr/share/man/man5/vsftpd.conf.5.gz
/usr/share/man/man8/vsftpd.8.gz
/var/ftp
/var/ftp/pub

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查詢指定程序包包含的配置文件
[root@localhost Packages]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查詢指定程序包提供的文檔
[root@localhost Packages]# rpm -qd vsftpd
/usr/share/doc/vsftpd-3.0.2/AUDIT
/usr/share/doc/vsftpd-3.0.2/BENCHMARKS
/usr/share/doc/vsftpd-3.0.2/BUGS
/usr/share/doc/vsftpd-3.0.2/COPYING
/usr/share/doc/vsftpd-3.0.2/Changelog
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/logins.txt
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2/README
/usr/share/doc/vsftpd-3.0.2/FAQ
/usr/share/doc/vsftpd-3.0.2/INSTALL
/usr/share/doc/vsftpd-3.0.2/LICENSE
/usr/share/doc/vsftpd-3.0.2/README
/usr/share/doc/vsftpd-3.0.2/README.security
/usr/share/doc/vsftpd-3.0.2/REWARD
/usr/share/doc/vsftpd-3.0.2/SECURITY/DESIGN
/usr/share/doc/vsftpd-3.0.2/SECURITY/IMPLEMENTATION
/usr/share/doc/vsftpd-3.0.2/SECURITY/OVERVIEW
/usr/share/doc/vsftpd-3.0.2/SECURITY/TRUST
/usr/share/doc/vsftpd-3.0.2/SIZE
/usr/share/doc/vsftpd-3.0.2/SPEED
/usr/share/doc/vsftpd-3.0.2/TODO
/usr/share/doc/vsftpd-3.0.2/TUNING
/usr/share/doc/vsftpd-3.0.2/vsftpd.xinetd
/usr/share/man/man5/vsftpd.conf.5.gz
/usr/share/man/man8/vsftpd.8.gz


效驗                                                                

rpm {-V|--verify} [select-options] [verify-options]
  --nodeps
              Don't verify dependencies of packages.
       --nodigest
              Don't verify package or header digests when read
              ing.
       --nofiles
              Don't verify any attributes of package files.
       --noscripts
              Don't  execute  the  %verifyscript  scriptlet (if
              any).
   
       S file Size differs
       M Mode differs (includes permissions and file type)
       5 digest (formerly MD5 sum) differs
       D Device major/minor number mismatch
       L readLink(2) path mismatch
       U User ownership differs
       G Group ownership differs
       T mTime differs
       P caPabilities differ
不添加任何參數默認就是檢查所有參數
rpm -V --nodeps

程序包的合法性驗證:

    來源合法:由制作者提供,依賴于制作者的數字簽名,簽名是作者使用自己的私鑰加密程序包的特性碼進行的;

    內容合法:包未被二次修改,依賴于:制作者提供的程序特征碼;

     驗正方式:安裝者用同樣的特征碼提取算法提取程序包的特征碼,并與原作者提供的相比較;

舉例:

rpm --import /misc/cd/RPM-GPG-KEY-CentOS-6 
rpm -K vsftpd-3.0.2-10.el7.x86_64.rpm 
vsftpd-3.0.2-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

  

數據庫維護

rpm管理器數據庫:/var/lib/rpm
rpmdb {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY]
  --initdb: 初始化數據庫,數據庫不存在,才會新建;
 --rebuilddb: 無論當前數據庫是否存在,都會直接重建此庫;

舉例:

#刪除庫
[root@localhost rpm]# ls
Basenames     __db.001  __db.003  Group       Name          Packages     Requirename  Sigmd5
Conflictname  __db.002  Dirnames  Installtid  Obsoletename  Providename  Sha1header   Triggername
[root@localhost rpm]# rm -fr *
[root@localhost rpm]# ls
#使用查詢重新生成庫
[root@localhost rpm]# rpm -qa vsftpd
[root@localhost rpm]# ls
Basenames     __db.001  __db.003  Group       Name          Packages     Requirename  Sigmd5
Conflictname  __db.002  Dirnames  Installtid  Obsoletename  Providename  Sha1header   Triggername
[root@localhost rpm]#
#使用命令rpmdb --initdb生成庫
[root@localhost rpm]# rm -fr *
[root@localhost rpm]# ll
total 0
[root@localhost rpm]# rpmdb --initdb
[root@localhost rpm]# ll
total 388
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Basenames
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Conflictname
-rw-r--r--. 1 root root 270336 Aug 23 22:19 __db.001
-rw-r--r--. 1 root root  81920 Aug 23 22:19 __db.002
-rw-r--r--. 1 root root 107048 Aug 23 22:19 __db.003
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Dirnames
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Group
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Installtid
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Name
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Obsoletename
-rw-r--r--. 1 root root  12288 Aug 23 22:19 Packages
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Providename
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Requirename
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Sha1header
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Sigmd5
-rw-r--r--. 1 root root   8192 Aug 23 22:19 Triggername

  

幫助

  1. man rpm

  



linux軟件包管理-rpm


2. man rpmdb


linux軟件包管理-rpm



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商都县| 织金县| 黄大仙区| 沁阳市| 河源市| 邯郸县| 旌德县| 漳浦县| 株洲市| 曲阜市| 昌乐县| 贵港市| 温州市| 循化| 沙坪坝区| 左权县| 玉林市| 镇宁| 鸡东县| 宁夏| 开化县| 云梦县| 昭觉县| 天峨县| 福清市| 密山市| 梁山县| 沁源县| 南木林县| 秦安县| 成武县| 绍兴县| 龙胜| 吴忠市| 新邵县| 大厂| 揭西县| 延边| 鄄城县| 盐池县| 壶关县|