rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題

一、rpm包管理

    

    用法: rpm [選項…]

    

        查詢/驗證軟件包選項:

          -a, –all                        查詢/驗證所有軟件包

          -f, –file                       查詢/驗證文件屬于的軟件包

          -g, –group                      查詢/驗證組中的軟件包

          -p, –package                    查詢/驗證一個軟件包

          –pkgid                          query/verify package(s) with package identifier

          –hdrid                          query/verify package(s) with header identifier

          –triggeredby                    query the package(s) triggered by the package

          –whatrequires                   query/verify the package(s) which require a dependency

          –whatprovides                   查詢/驗證提供相關依賴的軟件包

          –nomanifest                     不把非軟件包文件作為清單處理

        

        查詢選項(用 -q 或 –query):

          -c, –configfiles                列出所有配置文件

          -d, –docfiles                   列出所有程序文檔

          -L, –licensefiles               list all license files

          –dump                           轉儲基本文件信息

          -l, –list                       列出軟件包中的文件

          –queryformat=QUERYFORMAT        使用這種格式打印信息

          -s, –state                      顯示列出文件的狀態

        

        驗證選項(用 -V 或 –verify):

          –nofiledigest                   不驗證文件摘要

          –nofiles                        不驗證軟件包中文件

          –nodeps                         不驗證包依賴

          –noscript                       不執行驗證腳本

        

        安裝/升級/擦除選項:

          –allfiles                       安裝全部文件,包含配置文件,否則配置文件會被跳過。

          –allmatches                     移除所有符合 <package> 的軟件包(如果 <package>

                                           被指定未多個軟件包,常常會導致錯誤出現)

          –badreloc                       對不可重定位的軟件包重新分配文件位置

          -e, –erase=<package>+           清除 (卸載) 軟件包

          –excludedocs                    不安裝程序文檔

          –excludepath=<path>             略過以 <path> 開頭的文件

          –force                          –replacepkgs –replacefiles 的縮寫

          -F, –freshen=<packagefile>+     如果軟件包已經安裝,升級軟件包

          -h, –hash                       (和 -v 一起使用效果更好),以#顯示程序包管理

                                            執行進度;每個#表示2%的進度 

          –ignorearch                     不驗證軟件包架構

          –ignoreos                       不驗證軟件包操作系統

          –ignoresize                     在安裝前不檢查磁盤空間

          -i, –install                    安裝軟件包

          –justdb                         更新數據庫,但不修改文件系統

          –nodeps                         不驗證軟件包依賴

          –nofiledigest                   不驗證文件摘要

          –nocontexts                     不安裝文件的安全上下文

          –noorder                        不對軟件包安裝重新排序以滿足依賴關系

          –noscripts                      不執行軟件包腳本

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

          –nocollections                  請不要執行任何動作集

          –oldpackage                     更新到軟件包的舊版本(帶 –force

                                           自動完成這一功能)

          –percent                        安裝軟件包時打印百分比

          –prefix=<dir>                   如果可重定位,便把軟件包重定位到 <dir>

          –relocate=<old>=<new>           將文件從 <old> 重定位到 <new>

          –replacefiles                   忽略軟件包之間的沖突的文件

          –replacepkgs                    如果軟件包已經有了,重新安裝軟件包

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

          -U, –upgrade=<packagefile>+     升級軟件包

        

        所有 rpm 模式和可執行文件的通用選項:

          -D, –define=“MACRO EXPR”        定義值為 EXPR 的 MACRO

          –undefine=MACRO                 undefine MACRO

          -E, –eval=“EXPR”                打印 EXPR 的宏展開

          –macros=<FILE:…>                從文件 <FILE:…> 讀取宏,不使用默認文件

          –nodigest                       不校驗軟件包的摘要

          –nosignature                    不驗證軟件包簽名

          –rcfile=<FILE:…>                從文件 <FILE:…> 讀取宏,不使用默認文件

          -r, –root=ROOT                  使用 ROOT 作為頂級目錄 (default: "/")

          –dbpath=DIRECTORY               使用 DIRECTORY 目錄中的數據庫

          –querytags                      顯示已知的查詢標簽

          –showrc                         顯示最終的 rpmrc 和宏配置

          –quiet                          提供更少的詳細信息輸出

          -v, –verbose                    提供更多的詳細信息輸出

          –version                        打印使用的 rpm 版本號

    最常用到的選項是:rpm -ivh PACKAGE_FILE

    最常見rpm包的地方就是我們的centos安裝光盤,這里我掛載一個安裝光盤并進入到其中

        blob.png

        blob.png

    其中的Packages文件夾中就存放這非常多的rpm包

        blob.png

        blob.png

    我們先導入光盤中的公鑰,這樣可以保證rpm包的合法性

        blob.png

    再新建數據庫,方便rpm包的安裝

        blob.png

    安裝一個rmp包試試

        blob.png

    因為包與包之間存在依賴性,所以必須手動解決依賴性或忽略依賴性,這是rpm工具的弱點,所以有了yum作為rpm的補充,后面會降到yum,這里我們忽略依賴性安裝

        blob.png

    將剛才安裝的包卸載掉,選項為-e

        blob.png

二、yum源管理

    yum是對rpm的補充,因為rpm工具無法自動解決安裝包的依賴問題,而yum很好的解決了這個問題

    

    yum源的配置文件:

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

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

    /etc/yum.repos.d/*.repo倉庫指向的定義:

         [repositoryID]

         name=Some name for this repository

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

         enabled={1|0}

         gpgcheck={1|0}

         gpgkey=URL

         enablegroups={1|0}

         failovermethod={roundrobin|priority}

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

         cost=

         默認為1000

    yum的repo配置文件中可用的變量:

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

        $arch: 平臺;

        $basearch:基礎平臺;

        $YUM0-$YUM9

    國內常用yum源url:

        http://mirrors.aliyun.com/

        http://mirrors.sohu.com/

        http://mirrors.163.com/

    

    yum的命令行選項:

        –nogpgcheck:禁止進行gpg check;

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

        -q:靜默模式;

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

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

        –noplugins:禁用所有插件;

    yum的子命令:

        顯示倉庫列表:

        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 […]

    

    1、配置本地yum源

            進入/etc/yum.repos.d中

            blob.png

        將系統自帶的網絡yum重命名以免使用,用mv重命名

        mv CentOS-Base.repo CentOS-Base.repo.bak

        blob.png        rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題

        將系統光盤掛載到/media/cdrom中

        rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題blob.png

        打開CentOS-Media.repo,在baseurl中加入/media/cdrom

        blob.png        rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題

        enabled=1表示啟用

        用yum install安裝一個沒安裝過的軟件試試

    2、配置阿里云yum源

        在/etc/yum.repos.d中創建一個repo文件,這里我創建的是aliyun.repo

        rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題blob.png

        文件中的內容是

        rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題blob.png

    

    [Centos7-ailiyun.com]

    name=Centos-$releasever-$basearch

    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch

    enabled=1

    gpgcheck=0

    [updates-ailiyun.com]

    name=Centos-$releasever-$basearch-updates

    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch

    enabled=1

    gpgcheck=0

        其中變量$releasever獲取的是版本號,$basearch獲取的是系統架構(如x86_64)

        enabled=1表示啟用,gpgcheck=0表示不進行校驗

        創建完之后構建本地緩存數據庫,yum makecache

        rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題blob.png

        安裝一個未安裝的軟件試試,比如centos7系統中沒有ifconfig,我們yum install net-tools.x86_64

        rpm和yum的使用,程序包編譯安裝以及編譯apache過程中出現的問題blob.png

        blob.png

        這里可以很明顯的看到yum會自動幫你解決依賴關系

    3、配置epel源

        直接在上面的aliyun.repo中添加一個epel倉庫

        blob.png

        添加完成之后記得構建緩存

        blob.png

三、程序包的編譯安裝

    1、開源源碼獲取站點

        www.Github.com

        www.apache.org

    2、編譯C源代碼

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

            開發工具:make, gcc等

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

                glibc:標準庫

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

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

        

        第一步:configure腳本

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

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

            選項分類:

                安裝路徑設定:

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

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

                System types:

                Optional Features: 可選特性

                    –disable-FEATURE

                    –enable-FEATURE[=ARG]

                Optional Packages: 可選包

                    –with-PACKAGE[=ARG]

                    –without-PACKAGE

        第二步:make

        第三步:make install

    

    3、安裝并編譯httpd-2.4

        安裝包組提供開發組件

        blob.png

        通過wget下載一個httpd-2.4的源碼至本地并解壓

        blob.png

        blob.png

        指定安裝位置和配置文件路徑

        blob.png

        報錯因為為沒找到APR包,那么我們去官網下一個編譯安裝

        blob.png

        blob.png

        blob.png

        blob.png

        make

        blob.png

        make install

        blob.png

        安裝完APR后我們回到httpd下繼續剛才的編譯安裝

        blob.png

        blob.png

        再次報錯,缺少APR-util包,按照剛才安裝APR包的方法安裝

        blob.png

        blob.png

        blob.png

        blob.png

        這里需要指明之前APR安裝的位置

        blob.png

        安裝完APR-util之后,再次安裝httpd

        blob.png

        編譯時注意指明apr或者apr-util的安裝位置

        blob.png

        blob.png

        再次出錯缺少pcre-config,還是按照前面的方法安裝編譯pcre-config

        blob.png

        blob.png

        blob.png

        安裝完pcre-config后編譯httpd還是提示錯誤,需要安裝pcre-devel

        blob.png

        這里我們就用yum源安裝了

        blob.png

        再次編譯httpd

        blob.png

        blob.png

        blob.png

        這次成功了,繼續執行make和make install

        blob.png

        blob.png

        完成后打開httpd服務試試

        blob.png

        blob.png

        blob.png

        這里需要注意的是,如果網頁打不開請關閉selinux.

原創文章,作者:N17_信風,如若轉載,請注明出處:http://www.www58058.com/12900

(0)
N17_信風N17_信風
上一篇 2016-03-19
下一篇 2016-03-20

相關推薦

  • 計算機的組成介紹

    一,什么是計算機?     計算機(computer)俗稱電腦,是現代一種用于高速計算的電子計算機器,可以進行數值計算,又可以進行邏輯計算,還具有存儲記憶功能。是能夠按照程序運行,自動、高速處理海量數據的現代化智能電子設備。 二,發展歷史 階段 時期(年) 主要器件 特征 應用領域發展 第一代 1946—1958 電子管數字機 電子管,機…

    2016-10-29
  • awk基本用法

    一、awk介紹     awk、sed&grep都可以匹配文本,但sed和awk可以對文本進行編輯,grep則不具有此功能;sed是非交互式的流編輯器,而awk則是一門模式匹配的編程語言。awk主要用于處理匹配的文本,同時awk還支持編程語言的一些特性,如變量、函數、循環語句等。  &nbs…

    Linux干貨 2016-09-21
  • linux使用yum對程序包管理相關知識

     yum客戶端:          配置文件:              /etc/yum.conf: 為所有倉庫提供公共配置              /et…

    Linux干貨 2017-01-02
  • N22-第二周作業-對Linux的基礎操作命令的理解及用法示例

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 Linux上文件管理類命令常用的有:pwd、ls、cd、cp、touch、mv、rm、rmdir   1)pwd:顯示當前工作目錄     2)ls:列出指定目錄下的內容    常用的選項有:   -a:列出目錄中的所有文…

    Linux干貨 2016-08-22
  • 基礎命令

    2018-03-13
  • debian8下安裝配置部署zabbix3.0

    一、安裝配置zabbix server     web server服務器:172.28.0.187     mysql服務器:172.28.0.237     1、安裝web server(172.28.0.187)  &nbs…

    Linux干貨 2016-05-07

評論列表(1條)

  • stanley
    stanley 2016-03-19 22:29

    知道寫標簽的同學都是注重細節的同學。贊,能有代碼格式化就更好了

欧美性久久久久