Linux程序包管理和yum用法

Linux程序包管理和yum的基本用法

 

Linux程序包管理

 

CentOS: yum, dnf

 

URL: ftp://172.16.0.1/pub/

 

YUM: yellow dog, Yellowdog Update Modifier

 

yum repository: yum repo

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

 

文件服務器:

ftp://

http://

nfs://

file:///

 

yum客戶端:

配置文件:

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

/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命令的用法:

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

 

       command is one of:

        * install package1 [package2] [...]

        * update [package1] [package2] [...]

        * update-to [package1] [package2] [...]

        * check-update

        * upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2] [...]

        * distribution-synchronization [package1] [package2] [...]

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

        * list [...]

        * info [...]

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

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

        * makecache

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

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

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        * search string1 [string2] [...]

        * shell [filename]

        * resolvedep dep1 [dep2] [...]

        * localinstall rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use update)

        * reinstall package1 [package2] [...]

        * downgrade package1 [package2] [...]

        * deplist package1 [package2] [...]

        * repolist [all|enabled|disabled]

        * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]

        * history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

        * check

        * help [command]

 

    顯示倉庫列表:

    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) 創建配置文件

    [CentOS7]

    name=  

    baseurl=

    gpgcheck=

    enabled=

 

    yum的命令行選項:

    --nogpgcheck:禁止進行gpg check

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

    -q:靜默模式;

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

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

    --noplugins:禁用所有插件;

 

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

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

    $arch: 平臺;

    $basearch:基礎平臺;

    $YUM0-$YUM9

 

    http://mirrors.magedu.com/centos/$releasever/$basearch/os

 

    創建yum倉庫:

    createrepo [options] <directory>

 

    程序包編譯安裝:

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

 

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

 

    源代碼組織格式:

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

 

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

    java: maven

 

 

    C代碼編譯安裝三步驟:

    ./configure

    (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:配置文件安裝位置;

 

    System types:

 

    Optional Features: 可選特性

    --disable-FEATURE

    --enable-FEATURE[=ARG]

 

    Optional Packages: 可選包

    --with-PACKAGE[=ARG]

    --without-PACKAGE

 

    第二步:make

 

    第三步:make install

 

    安裝後的配置:

    (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

 

 

 

 

 

 

 

總結:

1.列出所有可更新的軟件清單

  命令:yum check-update

 

2.安裝所有更新軟件

  命令:yum update

 

3.僅安裝指定的軟件

  命令:yum install <package_name>

 

4.僅更新指定的軟件

  命令:yum update <package_name>

 

5.列出所有可安裝的軟件清單

  命令:yum list

 

YUM安裝刪除軟件

    裝了系統添加刪除軟件是常事,yum同樣可以勝任這一任務,只要軟件是rpm安裝的。 

    安裝的命令是,yum install xxxyum會查詢數據庫,有無這一軟件包,如果有,則檢查其依賴衝突關係,如果沒有依賴衝突,那麼最好,下載安裝;如果有,則會給出提示,詢問是否要同時安裝依賴,或刪除衝突的包,你可以自己作出判斷。 

    刪除的命令是,yum remove xxx,同安裝一樣,yum也會查詢數據庫,給出解決依賴關係的提示。 

 

 

1.YUM安裝軟件包

  命令:yum install <package_name>

 

2.YUM刪除軟件包

  命令:yum remove <package_name>

 

YUM查詢軟件信息

    我們常會碰到這樣的情況,想要安裝一個軟件,只知道它和某方面有關,但又不能確切知道它的名字。這時yum的查詢功能就起作用了。你可以用 yum search keyword這樣的命令來進行搜索,比如我們要則安裝一個Instant Messenger,但又不知到底有哪些,這時不妨用 yum search messenger這樣的指令進行搜索,yum會搜索所有可用rpm的描述,列出所有描述中和messeger有關的rpm包,於 是我們可能得到gaimkopete等等,並從中選擇。 

有時我們還會碰到安裝了一個包,但又不知道其用途,我們可以用yum info packagename這個指令來獲取信息。 

 

 

1.使用YUM查找軟件包

  命令:yum search <keyword>

 

2.列出所有可安裝的軟件包

  命令:yum list

 

3.列出所有可更新的軟件包

  命令:yum list updates

 

4.列出所有已安裝的軟件包

  命令:yum list installed

 

5.列出所有已安裝但不在 Yum Repository 內的軟件包

  命令:yum list extras

 

6.列出所指定的軟件包

  命令:yum list <package_name>

 

7.使用YUM獲取軟件包信息

  命令:yum info <package_name>

 

8.列出所有軟件包的信息

  命令:yum info

 

9.列出所有可更新的軟件包信息

  命令:yum info updates

 

10.列出所有已安裝的軟件包信息

  命令:yum info installed

 

11.列出所有已安裝但不在 Yum Repository 內的軟件包信息

  命令:yum info extras

 

12.列出軟件包提供哪些文件

  命令:yum provides <package_name>

 

清除YUM緩存

1.清除緩存目錄(/var/cache/yum)下的軟件包

  命令:yum clean packages

 

2.清除緩存目錄(/var/cache/yum)下的 headers

  命令:yum clean headers

 

3.清除緩存目錄(/var/cache/yum)下舊的 headers

  命令:yum clean oldheaders

4.清除緩存目錄(/var/cache/yum)下的軟件包及舊的headers

  命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章