日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rpm与yum详解

發布時間:2025/7/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rpm与yum详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CentOS系統上rpm命令管理程序包:

rpmrpm Package Manager,即軟件包管理工具;

一、rpm包管理的用途;

1、可以安裝、刪除、升級和管理軟件;當然也支持在線安裝和升級軟件;

2、通過rpm包管理能知道軟件包包含哪些文件,也能知道系統中的某個文件屬于哪個軟件包;

3、可以在查詢系統中的軟件包是否安裝以及其版本;

4、作為開發者可以把自己的程序打包為RPM 包發布;

5、軟件包簽名GPGMD5的導入、驗證和簽名發布

6、依賴性的檢查,查看是否有軟件包由于不兼容而擾亂了系統;

?

二、rpm 的使用權限;

rpm軟件的安裝、刪除、更新只有root權限才能使用;對于查詢功能任何用戶都可以操作;如果普通用戶擁有安裝目錄的權限,也可以進行安裝;

?

三、rpm命令:rpm? [OPTIONS]?[PACKAGE_FILE]

? ?rpm的基本選項:

? ? ? ? 1、安裝:-i,--install

? ? ? ? 2、升級:-U,--update, -F, --freshen

? ? ? ? 3、卸載:-e,--erase

? ? ? ? 4、查詢:-q,--query

? ? ? ? 5、校驗:-V,--verify

? ? ? ? 6、數據庫維護:--builddb,--initdb

???????????????????????????

? ?1rpm安裝:

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

? ? ??

? ? ? ? ?rpm–ivh PACKAGE_FILE ...

? ? ? ? ?根據路徑安裝并顯示進度

? ? ? ? ? ?GENERAL OPTIONS

? ? ? ? ? ?-v:以詳細信息輸出

? ? ? ? ? ?-vv:更詳細的輸出

????????????????????????????????????

? ? ? ? ?[install-options]

? ? ? ? ? ? ?-h:輸出進度條;每個#表示2%的進度; ?

? ? ? ? ? ? ?--test:測試安裝,檢查并報告依賴關系及沖突消息等,并不實際安裝;

? ? ? ? ? ? ?--nodeps:忽略軟件包的依賴關系強行安裝;不建議使用;

? ? ? ? ? ? ?--replacepkgs:無論軟件包是否已被安裝,都強行重裝軟件包

? ? ? ? ? ? ?--nosignature:不檢查包簽名信息,不檢查來源合法性;

? ? ? ? ? ? ?--nodigest:不檢查包完整性信息;

? ? ? ? ? ? ? ? ? ??

? ?2)升級:

? ? ? rpm{-U|--upgrade} [install-options] PACKAGE_FILE ...

? ? ? rpm{-F|--freshen} [install-options] PACKAGE_FILE ...

? ? ?????????????????????????????

? ? ? ? -U:升級或安裝,如后面接的包若沒有安裝過,則系統將直接安裝

? ? ? ? -F:升級,如果后面接的包若沒有安裝過,則該包不會安裝。

????????????????????????????????????

? ? ? ? rpm -Uvh PACKAGE_FILE ...

? ? ? ? rpm -Fvh PACKAGE_FILE ...

????????????????????????????????????

? ? ? ? --oldpackage:降級;

? ? ? ? rpm –Uvh –oldpackage PACKAGE_FILE…

?

? ? ? ? --force:忽略軟件包及文件的沖突,強制升級;

? ? ? ? rpm–ivh PACKAGE_FILE… --force

???????????????

????注意:(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此,直接安裝新版本內核;

? ? ? ? ?(2) 如果某原程序包的配置文件安裝后曾被修改過,升級時,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;

?????????????????????????????????????????????? ???

? ?3)卸載:

? ? ? rpm{-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...

????????????????????????????????

? ? ? ? ? --allmatches:卸載所有匹配指定名稱的程序包的各版本;

? ? ? ? ? --nodeps:忽略軟件包的依賴關系強行安裝

? ? ? ? ? --test:安裝測試,并不實際安裝

????????????????????????????????????

? ?4)查詢:

? ? ? rpm{-q|--query} [select-options] [query-options]

? ? ??????????????????????????

? ? ? ? [select-options]

? ? ? ? ? ? PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本;

? ? ? ? ? ? -a,--all:查詢所有已經安裝過的包;

? ? ? ? ? ? -f FILE:查詢指定的文件由哪個程序包安裝生成;

? ? ? ? ? ? -p,--package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;

??????????????????????????? ???

? ? ? ? ? ? --whatprovidesCAPABILITY:查詢指定的功能由哪個程序包提供;

? ? ? ? ? ? --whatrequiresCAPABILITY:查詢指定的功能被哪個包所依賴;

????????????????????????????????????

? ? ? ? [query-options]

? ? ? ? ? ? --changelog:查詢rpm包的changlog

? ? ? ? ? ? -l,--list:程序安裝生成的所有文件列表;

? ? ? ? ? ? -i,--info:程序包相關的信息,版本號、大小、所屬的包組,等;

? ? ? ? ? ? -c,--configfiles:查詢指定的程序包提供的配置文件;

? ? ? ? ? ? -d,--docfiles:查詢指定的程序包提供的文檔;

? ? ? ? ? ? --provides:列出指定的程序包提供的所有的CAPABILITY

? ? ? ? ? ? -R,--requires:查詢指定的程序包的依賴關系;

? ? ? ? ? ? --scripts:查看程序包自帶的腳本片斷;

????????????????????????????????????

? ? 用法:

? ? ? ? -qiPACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

? ? ? ? -qpiPACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ...

????????????????????????????????????

? ? 5)校驗:

? ? ? rpm{-V|--verify} [select-options] [verify-options] ?

???????????????????????????

?包來源合法性驗正和完整性驗正:

? ??來源合法性驗正:

? ??完整性驗正:

??????????????????

? ??獲取并導入信任的包制作者的密鑰:

? ? ??對于CentOS發行版 rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

???????????????????????????

? ??驗正:

? ? ?(1)安裝此組織簽名的程序時,會自動執行驗正;

? ? ?(2)手動驗正:rpm -K PACKAGE_FILE

???????????????????????????

??數據庫重建:

? ? ? rpm管理器數據庫路徑:/var/lib/rpm/

? ? ? ?查詢操作:通過此處的數據庫進行;

???????????????????????????

? ??獲取幫助:

? ? ? ? CentOS6man rpm

? ? ? ? CentOS7man rpmdb

???????????????????????????

? ? ? ? rpm{--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]

? ? ? ? ? --initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;

? ? ? ? ? --rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;

???????????????????????????




yum(全稱為 Yellow dogUpdater, Modified):是一個在FedoraRedHat以及CentOS中的Shell前端軟件包管理器。

?yumrepository: yum repoyum倉庫)

? ??存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄下:repodata);

?

? yum客戶端:?

? ? ? 配置文件:

? ? ? ? /etc/yum.conf:為所有倉庫提供公共配置

? ? ? ? /etc/yum.repos.d/*.repo:為倉庫的指向提供配置

?

? ? ?倉庫指向的定義:

? ? ? [repositoryID]:倉庫的名字

? ? ? name=倉庫的描述,也可以說是名字

? ? ? baseurl=url://path/to/repository/:倉庫的位置

? ? ? enabled={1|0}:是否啟用這個倉庫,1為啟用,0為禁用

? ? ? gpgcheck={1|0}:是否檢查gpg簽名,檢查來源完整性

? ? ? gpgkey=URL指明密鑰文件

? ? ? enablegroups={1|0}是否在此倉庫上使用組來批量處理程序包

? ? ? failovermethod={roundrobin|priority}(默認為:roundrobin,意為隨機挑選)

? ? ? cost=:開銷數字(默認為1000)

?

yum命令的用法:

? ? ? yum[options] [command] [package ...]


? ? ?顯示倉庫列表:

? ? ? ? repolist [all|enabled|disabled]

? ? ??


? ? ? 顯示程序包:

? ? ? list

? ? ? ? # yum list [all | glob_exp1][glob_exp2] [...]

? ? ? ? # yum list{available|installed|updates} [glob_exp1] [...]

? ? ??

? ? ? 安裝程序包:

? ? ? ? install package1 [package2] [...]

? ? ??

? ? ? ? reinstall package1 [package2][...]? (重新安裝)

? ? ??

? ? ?升級程序包:

? ? ? ? update [package1] [package2] [...]

? ? ??

? ? ? ? downgrade package1 [package2] [...] (降級)

?

? ? ?檢查可用升級:

? ? ? ? check-update

??? 卸載程序包:

? ? ? ? remove | erase package1 [package2][...]

? ? ??

??? 查看程序包information

? ? ? ? info [...]

??? 查看指定的特性(可以是某文件)是由哪個程序包所提供:

? ? ? ? provides | whatprovides feature1[feature2] [...]

? ??清理本地緩存:

? ? ? ? clean [ packages | metadata |expire-cache | rpmdb | plugins | all ]

??? 構建緩存:

? ? ? ? makecache

?

??? 搜索:

? ? ? ? search string1 [string2] [...]

? ? ??

? ??以指定的關鍵字搜索程序包名及summary信息;

?

? ??查看指定包所依賴的capabilities

? ? ? ? deplist package1 [package2] [...] ? ?

? ? 查看yum事務歷史:

? ? ? ??History [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|

? ? ? ? new|sync|stats]

??? 安裝及升級本地程序包:

? ? ? ? *localinstall rpmfile1 [rpmfile2] [...]

??????????(maintained for legacy reasons only - use install)

? ? ? ? *localupdate rpmfile1 [rpmfile2] [...]

??????????(maintained for legacy reasons only - use update)

?

??? 包組管理的相關命令:

???????* groupinstall group1 [group2] [...]

???????* groupupdate group1 [group2] [...]

???????* grouplist [hidden] [groupwildcard] [...]

???????* groupremove group1 [group2] [...]

???????* groupinfo group1 [...]

?

??? 如何使用光盤當作本地yum倉庫:

? ? ? ? (1) 掛載光盤至某目錄,例如/media/cdrom

? ? ? ? ? # mount -r -t iso9660 /dev/cdrom /media/cdrom

? ? ? ? (2) 創建配置文件

? ? ? ? ? ? ? ?

? ? yum的命令行選項:

? ? ? ? ? ? --nogpgcheck:禁止進行gpgcheck

? ? ? ? ? ? -y: 自動回答為“yes”;

? ? ? ? ? ? -q:靜默模式;

? ? ? ? ? ? --disablerepo=repoidglob:臨時禁用此處指定的repo

? ? ? ? ? ? --enablerepo=repoidglob:臨時啟用此處指定的repo

? ? ? ? ? ? --noplugins:禁用所有插件;

?

???yumrepo配置文件中可用的變量:

? ? ? ? ? ? $releasever: 當前OS的發行版的主版本號;

? ? ? ? ? ? $arch: 平臺;

? ? ? ? ? ? $basearch:基礎平臺;

? ? ? ? ? ? $YUM0-$YUM9

?

? ?創建yum倉庫:

? ? ? ? ? ? createrepo [options] <directory>


? ?程序包編譯安裝:

? ? ? ? ? ? testapp-VERSION-release.src.rpm --> 安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝;

? ? ? ? ? ??源代碼 --> 預處理 --> 編譯(gcc)--> 匯編 --> 鏈接 --> 執行

? ? ? ? ? ??源代碼組織格式:

? ? ? ? ? ? ? ??多文件:文件中的代碼之間,很可能存在跨文件依賴關系;

?

? ? ? ? ? ? ? ? CC++ make(configure --> Makefile.in --> makefile)

? ? ? ? ? ? ? ? java: maven

?

? ? 源代碼編譯安裝三步驟:

? ? ? ? ./configure

? ? ? ? ??]#?./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2

? ? ? ?(1) 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及Makefile.in文件生成makefile

? ? ? ? (2) 檢查依賴到的外部環境;

? ? ? ? ? make

? ? ? ?根據makefile文件,構建應用程序;

? ? ? ? ? make install

?

??? ??開發工具:

? ? ? ? ? autoconf: 生成configure腳本

? ? ? ? ? automake:生成Makefile.in

?

??? 建議:安裝前查看INSTALLREADME

?

??? ??開源程序源代碼的獲取:

??? ????官方自建站點:

? ? ? ? ? apache.org (ASF)

? ? ? ? ? mariadb.org

? ? ? ? ? ? ...

??? ????代碼托管:

? ? ? ? ? SourceForge

? ? ? ? ? Github.com

? ? ? ? ? code.google.com

?

? ? ? ?c/c++: gcc (GNU C Complier)

?

??? 編譯C源代碼:

??? ??前提:提供開發工具及開發環境

??? ??開發工具:make,gcc

??? ??開發環境:開發庫,頭文件

? ? ? ?glibc:標準庫

?

??? 通過“包組”提供開發組件

? ? ? ?CentOS 6:"Development Tools", "Server Platform Development",

?

??? 第一步:configure腳本

??? ??選項:指定安裝位置、指定啟用的特性

? ? ? ?注:上面是啟動時遇到的一個問題;

? ? ? ? ? ? --help: 獲取其支持使用的選項

??? 選項分類:

??? ??安裝路徑設定:

? ? ? ? ? ? --prefix=/PATH/TO/SOMEWHERE:指定默認安裝位置;默認為/usr/local/

? ? ? ? ? ? --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置;

?? ? ? ? ? ? ??

? ? ? ? ? ? Systemtypes:

?

? ? ? ? ? ? OptionalFeatures: 可選特性

? ? ? ? ? ? ? ?--disable-FEATURE

? ? ? ? ? ? ? ?--enable-FEATURE[=ARG]

?

? ? ? ? OptionalPackages: 可選包

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-- ? ? ? ? ? ? ?with-PACKAGE[=ARG]

? ? ? ? ? ?--without-PACKAGE

? ??第二步:make

? ??第三步:makeinstall

? ??安裝后的配置:

? ? 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文件

??? ??添加一個MANPATH

?

轉載于:https://blog.51cto.com/yaoliang83/1728915

總結

以上是生活随笔為你收集整理的rpm与yum详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。