軟件包管理

rpm 與 yum 的用法

blob.png

源代碼:name-VERSION.tar.gz|bz2|xz

VERSION: major.minor.release

?rpm包命名方式:

name-VERSION-release.arch.rpm

例:bash-4.2.46-19.el7.x86_64.rpm

VERSION: major.minor.release

release:release.OS

常見的arch:

x86: i386, i486, i586, i686

x86_64: x64, x86_64, amd64powerpc: ppc

跟平臺無關:noarch


包:分類和拆包

Application-VERSION-ARCH.rpm: 主包

Application-devel-VERSION-ARCH.rpm開發子包

Application-utils-VERSION-ARHC.rpm其它子包

Application-libs-VERSION-ARHC.rpm其它子包


blob.png

解決依賴包管理工具:

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

apt-get:deb包管理器前端工具

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

dnf: Fedora 18+ rpm包管理器前端管理工具


blob.png

獲取程序包的途徑

    1)系統發版的光盤或官方服務器;

    2)項目官方站點

    3)第三方組織

            Rpmforge:RHEL推薦

            搜索引擎:

                    http://pkgs.org

                    http://rpmfind.net

                    http://rpm.pbone.net

                    http://sourceforge.net

     4)自己制作

注意:查其合法性:來源合法性,程序包的完整性

 

blob.png

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

        安裝、卸載、升級、查詢、校驗、數據庫維護

  安裝

  rpm {-i|–install} [install-options] PACKAGE_FILE…

        -v: verbose 過程顯示

        -vv:    詳細過程顯示

        -h: 以#顯示程序包管理執行進度

        rpm -ivh  PACKAGE_FILE ..

                                    [install-options]

                                    –test: 測試安裝,但不真正執行安裝;dry run模式

                                    –nodeps:忽略依賴關系

                                    –replacepkgs| replacefiles

                                    –nosignature: 不檢查來源合法性

                                    –nodigest:不檢查包完整性

                                    –noscipts:不執行程序包腳本片斷

                                    %pre: 安裝前腳本;–nopre

                                    %post: 安裝后腳本;–nopost

                                    %preun: 卸載前腳本;–nopreun

                                    %postun: 卸載后腳本;–nopostun


blob.png


rpm {-U|–upgrade} [install-options] PACKAGE_FILE…

rpm {-F|–freshen} [install-options] PACKAGE_FILE…

        upgrade:安裝有舊版程序包,則“升級”

        如果不存在舊版程序包,則“安裝”

        freshen:安裝有舊版程序包,則“升級”

        如果不存在舊版程序包,則不執行升級操作

        rpm -Uvh PACKAGE_FILE …

        rpm -Fvh PACKAGE_FILE …

                                        –oldpackage:降級

                                        –force: 強行升級

blob.png                   

blob.png

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

                    ?[select-options]

                    -a: 所有包

                    -f: 查看指定的文件由哪個程序包安裝生成

                    -p rpmfile:針對尚未安裝的程序包文件做查詢操作;

                    –whatprovidesCAPABILITY:查詢指定的CAPABILITY由哪個包所提供

                    –whatrequiresCAPABILITY:查詢指定的CAPABILITY被哪個包所依賴

?

                                                [query-options]

                                                –changelog:查詢rpm包的changelog

                                                -c: 查詢程序的配置文件

                                                -d: 查詢程序的文檔

                                                -i: information

                                                -l: 查看指定的程序包安裝后生成的所有文件;

                                                –scripts:程序包自帶的腳本片斷

                                                -R: 查詢指定的程序包所依賴的CAPABILITY;

                                                –provides: 列出指定程序包所提供的CAPABILITY;

如果刪除某個命令的文件  而不想重新安裝 只想安裝其包中的一個 就要用到一下兩個命令

  rpm2cpio 包文件|cpio–itv預覽包內文件

?rpm2cpio 包文件|cpio–id “*.conf”釋放包內文件

           

查詢用法:

-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE

-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, …

-qa

?卸載:

rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …

rpm -e 包名


blob.png

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

rpm -V 包名

        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 mTimediffers

        P capabilities differ


導入所需要公鑰:

rpm -K|checksigrpmfile檢查包的完整性和簽名

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7

rpm -qagpg-pubkey*


blob.png

數據庫重建:

/var/lib/rpm

?rpm {–initdb|–rebuilddb}

            initdb: 初始化 (較為安全推薦)

                如果事先不存在數據庫,則新建之

                否則,不執行任何操作

            rebuilddb:重建

                無論當前存在與否,直接重新創建數據庫


blob.png

文件服務器:

ftp://

http://

file:///

blob.png

yum客戶端配置文件:

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

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

            倉庫指向的定義:

                        [repositoryID]

                        name=Some name for this repository

                        baseurl=url://path/to/repository/

                        enabled={1|0}默認1

                        gpgcheck={1|0}默認1

                        gpgkey=URL

                        enablegroups={1|0}

                        failovermethod={roundrobin|priority}

                        默認為:roundrobin,意為隨機挑選;

                        cost= 默認為1000

                    

yum-config-manager –disable “倉庫名" 禁用倉庫

yum-config-manager –enable “倉庫名” 啟用倉庫

            

顯示倉庫列表:

?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 | whatprovidesfeature1 [feature2] […]

?清理本地緩存:

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

?構建緩存:

makecache

搜索:search string1 [string2] […]

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

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

deplistpackage1 [package2] […]

?查看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 undo 6

?日志:/var/log/yum.log

安裝及升級本地程序包:

* localinstallrpmfile1 [rpmfile2] […]

(用install替代)

* localupdaterpmfile1 [rpmfile2] […]

(用update替代)

?包組管理的相關命令:

groupinstallgroup1 [group2] […]

groupupdategroup1 [group2] […]

grouplist[hidden] [groupwildcard] […]

groupremovegroup1 [group2] […]

groupinfogroup1 […]

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

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

# mount /dev/cdrom/media/cdrom

?(2) 創建配置文件

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=

yum的命令行選項:

–nogpgcheck:禁止進行gpgcheck

-y: 自動回答為“yes”

-q:靜默模式

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

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

–noplugins:禁用所有插件

blob.png

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倉庫:

createrepo[options] <directory>

blob.png

C代碼編譯安裝三步驟:

1、./configure:

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

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

2、make:根據makefile文件,構建應用程序

3、make install:復制文件到相應路徑

?開發工具:

autoconf: 生成configure腳本

automake:生成Makefile.in

?注意:安裝前查看INSTALL,README



1安裝包組

yum groupinstall  "Development tools"

2下載并解開源碼包

tar xvf httpd-2.2.29.tar.bz2 

3 ./configure

./configure –prefix=/usr/local/http2  –sysconfdir=/etc/http2

4 make

5 make install

6 啟動web服務程序

netstat -atn

 ./apachectl start

7 測試:關防火墻,瀏覽器訪問

iptables -vnL

iptables -F

yum install links

links 10.1.252.192


                    










原創文章,作者:Nicolas ZhaoIV,如若轉載,請注明出處:http://www.www58058.com/36498

(0)
Nicolas ZhaoIVNicolas ZhaoIV
上一篇 2016-09-01
下一篇 2016-09-01

相關推薦

  • Linux文件權限管理及目錄文件的深入理解。

    文件權限及目錄 初學Linux,感覺這個東西該復雜,而且邏輯非常的強。難~! 自己根據學習到的理論和實踐,得出的對文件權限,進程,以及特殊權限的深入理解。希望能解決初學者對于權限的困惑。如有錯誤請指正。 文件的權限,指定的是什么? 是文件的權限位上的權限,針對三類用戶,任何用戶都必須是三類用戶中的一種,屬主屬組和其他人的權限rwx   &…

    Linux干貨 2016-08-10
  • 馬哥教育網絡班20期-第四周課程作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。       cp -r /etc/skel /home/tuser1 | chmod -R g…

    Linux干貨 2016-06-29
  • 【招聘】天津/贊普科技股份有限公司/Linux系統運維工程師/6-7k/五險一金

    天津贊普科技股份有限公司——簡稱贊普科技,成立于2003年,坐落于天津市濱海高新區,是一家專業的互聯網綜合服務商,主營數字網絡建設、數據接入及增值服務和智能化網絡產品及服務。歷經11年的發展,贊普科技已成長為高新區科技型小巨人企業、國家高新技術企業,專注于移動互聯與大數據、云計算、商業WIFI行業的領軍者。     贊普科技計劃…

    Linux干貨 2015-12-03
  • sed大法好

    sed sed概念 (1)基本概念:sed是流編輯器(stream editor),A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).作用就是對輸入的流(文件或者從一個管道輸入的流…

    Linux干貨 2016-12-02
  • ftp的配置

    FTP服務器配置 VSFTP主配置文件路徑:/etc/vsftpd/vsftpd.conf,重要參數: anonymous_enable=yes/no 是否允許匿名用戶訪問 anon_upload_enable=yes/no 是否允許匿名用戶上傳文件 anon_mkdir_write_enable=yes/no 是否允許匿名用戶創建目錄 anon_other…

    2017-10-16
  • 關于磁盤管理的例子

    今天來說一個關于磁盤管理的例子,通過這個例子也順便了解一下此例子涉及到的一些相關命令、文件。 練習:創建一個2G的文件系統,塊大小為2048byte, 預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/test目錄,且默認有acl掛載選項 思路:1.在/etc/fstab中定義開機自動掛載信息    &nbs…

    Linux干貨 2017-08-19
欧美性久久久久