關于軟件包管理

        軟件包管理

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

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

rpm安裝:

        rpm {-i|–install} [安裝-選項] 打包;包

        -h  以#符號表示安裝進度

        -v  顯示安裝過程中的詳細信息

        -vv

        -vvv

        經常使用組合:-ivh,ivvh

        例如 rpm -ivh 包文件

        安裝時的選項:

        –test    測試安裝,但不真正執行安裝,僅報告依賴關系以及沖突信息等

        –nodeps  忽略依關系,副作用是能安裝成功,但未必能運行成功

        –replacepkgs  覆蓋安裝–重新安裝并覆蓋原有的文件

        –nosignature  不被監測來源合法性

        –nodigest     不檢查包完整性

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

        –foree        強制安裝

        

rpm包升級:

         rpm {-U|–upgrade} [安裝-選項] 打包;包 

              -U   升級或安裝

               upgrade:安裝有舊版程序包,則“升級”  如果不存在舊版程序包,則“升級”

         rpm {-F|–freshen} [安裝-選項] 打包;包 

              -F   升級

               freshen:安裝有舊版程序包,則“升級”  如果不存在舊版程序包,則不執行升級操作

        常用組合:-Uvh,Fvh 

        例如  rpm -Uvh 包文件

        升級選項:

        –oldpackage      降級

        –force           強制升級

升級時需要注意事項:

1  不要對內核執行升級,Linux 支持多個內核共存,可以對此直接安裝新版本內核或不同版本的內核

2   如果程序包的配置文件安裝后被修改,升級時,新版本的文件不會覆蓋老版本的配置文件。而是把新版本的文件重命名加上后綴(.rpmnew) 之后保留

rpm包查詢:

         rpm {-q|–query}[選擇-選項][查詢選項]

         安裝選項                                                     ~]# rpm -q tree 后面準確查找包名    

         -a 所有包、                                                ~]# rpm -qa     查詢當前系統安裝的所有包  ~]# rpm -qa |grep "^tr"  管道給關鍵字查找,以tr開頭的包名

         -f 查看指定的文件由哪個程序安裝生成                          ~]# rpm -qf /etc/issue   查詢文件是哪個包生成   

         -p  rpmfuile 針對尚未安裝程序包文件做查詢操作;              ~]# rpm -qp tree-1.6.0-10.el7.x86_64.rpm 

         –whatprovides 性能進程 查詢指定的性能進程有哪個包所提供     ~]# rpm -q tree –whatprovides  查詢這個功能是由哪個包所提供

         –whatrequires 性能進程 查詢指定的性能進程被哪個包所依賴     ~]# rpm -q bash –whatrequires  查詢這個功能是被哪個包所依賴  

         rpm2cpio 包文件|cpio -itv  預覽包內的文件                    ~]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -itv

rpm2cpio 包文件|cpio -id   "*.conf" 釋放包內文件

         查詢選項:

         –changelog 查詢rpm包的變動日志                              ~]# rpm -qc tree –changelog

         -c   查詢程序的配置文件   

         -d   查詢程序的文檔                                          ~]# rpm -qd tree

         -i   信息                                                    ~]# rpm -qi tree

         -l   查看指定的程序包安裝后生成的所有文件                    ~]# rpm -ql tree

         –scripts 程序包自帶的腳本片斷                               ~]# rpm -q bash –scripts

         -R   查詢指定的程序包所依賴的 性能進程                       ~]# rpm -qR bash

         –provides  ;列出指定程序包所提供的 性能進程                ~]# rpm -q bash –provides

rpm卸載:

        rpm  {-e|–erase} 

         –allmatches      移除所有符合 <package> 的軟件包(如果<package> 被指定未多個軟件包,常常會導致錯誤出現)

         –nodeps                         不驗證軟件包依賴

         –noscripts                      不執行軟件包腳本

         –notriggers                     不執行本軟件包觸發的任何腳本

         –test                           不真正安裝,只是判斷下是否能安裝

包檢驗:rpm {-V|–verify}

               –nofiledigest                   不驗證文件摘要

               –nofiles                        不驗證軟件包中文件

               –nodeps                         不驗證包依賴

               –noscript                       不執行驗證腳本

導入所需要公鑰:

 ~]# rpm -K tree-1.6.0-10.el7.x86_64.rpm   檢查包的完整性和簽名

       

rpm數據庫:

        數據庫重建: /var/lib/rpm

        rpm {–initdb|–rebuilddb}

        initdb  初始化

        如果時間不存在數據庫,則新建之,否則 不執行任何操作

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

  

  

  

rpm命令實現程序管理   主要核心命令

安裝:-vih,–nodeps,–replacepkgs

卸載:-e,–nodeps

升級:-Uvh,-Fvh,–nodeps,–oldpackage

查詢:-q,-qa,-qf,-qi,-qc,-q –scripts, -q –chanlog, -q –provides,-q–requires

校驗:-V

導入GPG密鑰:–import,-K,–nodigest,–nosignature

數據庫重建:–initdb,–rebuilddb                                   

===========================================================

yum 

    yum是rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,

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

    文件服務器:ftp:

                http://

                file:///

yum配置文件:

           /etc/yum.conf              主配置文件為所有倉庫提供數據

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

           創庫指向的定義:

           文件以.repo 結尾; 

           root@Compro ~]# cat /etc/yum.repos.d/base.repo 

           [base]                       提供配置信息

           name=CentOS 7                當前倉庫的名稱

           baseurl=http://10.1.0.1/cobbler/ks_mirror/CentOS-7-x86_64/    教室里的yum源

           enabled=1                    此倉庫是否為可用

           gpgcheck=0                   是否對程序包做校驗

           gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    指明訪問密鑰路徑的路徑

           [倉庫ID]     對于當前系統的yum來將,此倉庫ID用于唯一標識此倉庫指向,因此,必須唯一

           name=name    當前倉庫描述信息名稱

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

           enabled={1|0}    此倉庫是否可被使用 1是 禁用0是可以 不寫是默認

           gpgcheck={1|0}   是否對程序包做校驗  

           gpgkey=          指明gpgkey文件路徑

           cost= 默認為1000

           

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

掛載光盤至某目錄,例如/media/cdrom

#mount /dev/cdrom /media/cdrom

創建配置文件:

[CentOS7]

name=自定義                  當前倉庫描述信息

baseurl=指明資源庫的訪問路徑,通常為一個文件服務器上輸出的某資源庫,支持的類型:ftp://;http://;file:///

gpgcheck={1|10}          是否對程序包做校驗

enabled={1|10}         此倉庫上是否可用,默認為可用           

yum命令的語法: yum [選項] [命令] [包]

yum顯示倉庫列表:

                yum repolist [all|enabled|disabled]

顯示程序包:

          yum list

          yum list [all | glob_ exp1 ] [glob_exp2] …             

          yum list {available|installed|updates}[glob_exp1]…      

安裝程序包:

          yum install 包1 [包2] …

          yum reinstall 包1 [包2]…         重新安裝

升級程序包:

          yum update [包1][包2]…

          yum downgrade 包1 [包2]…      降級

卸載程序包:

          yum remove | erase 包1 [包2]  …                      

                

查看程序包的信息:

          yum info name

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

yum provides | whatprovides 特性1 [特性2] …                

清理本地緩存:

          yum clean [包|元數據|expire-cache|rpmdf|plugins|all]

構建緩存:

         yum makecache            

 

搜索:

    yum  search 字符串1 [字符串2]

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

查看指定包所依賴的capabilities 

     yum deplist 包1 [包2] …

查看 yum事務歷史

               yum history

               

日志:

     /var/log/yum.log

     

安裝及升級本地程序包

         yum install rpmfile1 [rpmfile2] …

         yum update  rpmfile1 [rpmfile2] …

包組管理的相關命令:

         yum groupinstall group1

         yum groupupdate group1

         yum grouplist [hidden][groupwildcard]

         yum groupremove group1

         yum groupinfo group1

         

     

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

 

掛載光盤至某目錄 

          例如 /media/crom  # mount /dev/cdrom /media/crom

          創建配置文件

          [CentOS7]

          name=name

          baseurl=file:///

          gpgcheck=0

          enabled=1    

yum 的命令行選項

yum [選項] 包

     –nogpgcheck     禁止進行gpg check

     -y               自動回答為"yes" 

     -q               靜默模式

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

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

     –noplugins                 禁用所有插件

     

 

 =================================================================

 

                    源碼編譯  

程序包編譯安裝:

Application-VERSION-release.src.rpm–> 

安裝后,使用rpmbuild命令制作成二進制格式的rpm包,而后再安裝

源代碼–>預處理–>編譯–>匯編–>鏈接–>執行

源代碼組織格式:

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

C、C++:make (項目管理器,configure –>

Makefile.in –> makefile)

java: maven

C代碼編譯安裝三步驟:

                    ./configure

                    通過選項傳遞參數,指定啟動特性、安裝路徑等;

                    執行時會參考用戶的指定以及makefile.in文件生成makefile

                    檢查依賴到的外部環境,如依賴的軟件包

                    [cdrom] 

                    name=centos 7 cdrom

                    baseurl=file:///mnt/cdrom

                    gpgcheck=0

                    enabled=0                   

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

                    make install   復制文件到相應路徑

開發工具:

         autoconf: 生成configure腳本

         automake:生成Makefile.in

         注意:安裝前查看 安裝自帶文檔

開源程序源代碼的獲?。?/p>

官方自建站點:

apache.org (ASF:Apache Software Foundation)

mariadb.org

代碼托管:

SourceForge.net

Github.com

code.google.com

c/c++編譯器: gcc(GNU C Complier)

編譯C源代碼:

       準備:提供開發工具及開發環境

             開發工具:make,gcc等

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

             glibc:標準庫

       實現:通過“包組”提供開發組件

CentOS 6:

Development Tools

Server Platform Development

CentOS 7:

Development Tools

Development and Creative Workstation

編譯安裝:

        第一步:configure 腳本

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

        安裝路徑設定:./configure –prefix=/usr/local/http2 –sysconfdir=/etc/http2/

可選特性:

–disable-FEATURE

–enable-FEATURE[=ARG]

可選包:

–with-PACKAGE[=ARG],依賴包

–without-PACKAGE,禁用依賴關系     

     

安裝后的配置:

二進制程序目錄導入至PATH環境變量中;

編輯文件:

 [root@Compro ~]# vim /etc/profile.d/http2.sh

 PATH=$PATH:/usr/local/http2/bin

導入庫文件路徑:

 編輯/etc/ld.so.conf.d/NAME.conf

 添加新的庫文件所在目錄至此文件中

讓系統重新生成緩存:

 ldconfig[-v]    

     

導入頭文件

基于鏈接的方式實現:

ln -sv

導入幫助手冊

編輯/etc/man.config|man_db.conf文件

添加一個MANPATH     

[root@Compro ~]# vim /etc/man_db.conf

MANDATORY_MANPATH /usr/local/http2/ma

     

     

     

     

     

     

     

     

     

     

 

原創文章,作者:小馬哥,如若轉載,請注明出處:http://www.www58058.com/42119

(0)
小馬哥小馬哥
上一篇 2016-08-30
下一篇 2016-08-30

相關推薦

  • Redis集群明細文檔

    Redis目前版本是沒有提供集群功能的,如果要實現多臺Redis同時提供服務只能通過客戶端自身去實現(Memchached也是客戶端實現分布式)。目前根據文檔已經看到Redis正在開發集群功能,其中一部分已經開發完成,但是具體什么時候可以用上,還不得而知。文檔來源:http://redis.io/topics/cluster-spec 一、介紹   該文檔是…

    Linux干貨 2015-04-04
  • Recycled和Recycler的故事

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/156012      首先說明一下,這里不是英語課堂,本文也不是來辨析Recycled和Recycler這兩個單詞的含義。Recy…

    Linux干貨 2015-03-25
  • corosync + pacemaker搭建高可用http

    一、實驗圖:    二、實驗環境準備:  1)時間同步(172.16.2.15是時間服務器) [root@web1 ~]# crontab  -e   */5 * * * * /usr/sbin/ntpdate&nbsp…

    Linux干貨 2015-06-30
  • 編程命名中的7+1個提示

    前幾天Neo寫過《編程中的命名設計那點事》,這里也有另外一篇和程序命名的文章,可以從另一個角度看看。 1.- 變量應該是盡可能的望文知意。千萬不要使用教材中的命名方式。 好的變量: daysDateRange, flightNumber, carColor. 壞的變量: days, dRange, temp, data, aux… 在我們…

    Linux干貨 2015-04-03
  • 根分區伸縮實驗

    眾所周知LVM是Linux環境下對 磁盤進行管理的一種機制。用戶在安裝Linux操作系統時,難以分配合適的硬盤空間,當一個分區存放不下某個文件時,這個文件因為文件系統的限制,也不能 跨越多個分區來存放。而遇到出現某個分區耗盡時,只有使用調整分區大小的工具。隨著LVM功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下可以方 便…

    Linux干貨 2015-05-27
  • raid各級別簡介

    一. raid 是什么       RAID:(Redundant Array of indenpensive Disk) 獨立磁盤冗余陣列: 磁盤陣列是把多個磁盤組成一個陣列,當作單一磁盤使用,它將數據以分段(striping)的方式儲存在不同的磁盤中,存取數據時,陣列中的相關磁盤一起動作,大幅減低數據的存…

    Linux干貨 2016-02-14
欧美性久久久久