Package Manager

Package Manager


  • Package 管理工具的分類

  • rpm

  • yum

  • Source Code Install


管理工具的分類

前段管理工具:
Debian:deb
Redhat,Suse…:rpm

前端管理工具:
Debian:apt-get
Redhat:yum,dnf

RPM

RPM是什么?
RPM全稱是RPM Package Manager,是一款用來管理軟件包的工具。 
RPM有什么用?
RPM能夠用來管理程序包,包括軟件包的安裝,刪除,卸載,升級,降級,查詢操作。

RPM包名:

Packagename-modname-major.minor.revision.distributions.arch.rpm

例如: NetworkManager-adsl-1.0.6-27.el7.x86_64.rpm

rpm命令的格式:

rpm [COMMAND] [OPTION]

查詢:

rpm -q [option]

    -a:顯示當前主機所有包。
    -i [Package_name]:顯示程序包的詳細信息。
    -l [Package_name]:列出程序包安裝后生成的所有文件。
    -c [Package_name]:列出程序的配置文件。
    -d [Package_name]:列出程序包的文檔文件。
    -p [Package_PATH]:針對還未安裝的程序做查詢。需要與q和其他參數搭配使用。
    --scripts [Package_name]:列出程序包自帶的腳本。
    --provides [Package_name]:列出程序包所提供的功能。
    -R [Package_name]:查詢指定程序包所依賴的功能。
    --whatprovides [功能]:查詢指定功能是哪個程序包提供的。
    --whatrequires [功能]:查詢所有以來此功能的所有程序包。

    常用用法:-qa -qi -ql -qc -qd -qpi -qpl...

安裝:

rpm -i [OPTIPN] [PACKAGE_PATH]

    -v|-vv:顯示安裝的詳細信息。
    -h:以hash表的格式來實時顯示進度,單位#。
    --test:測試安裝。
    --nodeps:忽略依賴關系。
    --replacepkgs:重新安裝。

    --nosignature:不檢查來源合法性。
    --nodigest:不檢查包的完整性。

    --noscript:不執行腳本。
      %pre:安裝前腳本。
      %post:安裝后腳本。
      %noprenu:卸載前腳本。
      %postun:卸載后腳本。

卸載:

    rpm -e [Package_name]

升級

    rpm <-U --upgrade |-F> [option] [Package_name】   
    -U:如果有更新就更新,沒有軟件就安裝。  
    -F:如果有更新就更新,沒有就推出。
    -V:詳細信息。
    -h:hash表顯示。
    --fouce:強制。

降級:

#rpm -F --oldpackage [Package_name]

校驗,導入密鑰:

rpm -V [Package_name]

rpm –import [Key_File]

rpm DB

    rpm {--initdb|--rebuilddb}
    --initdb:初始化rpm數據庫。
        如果事先不存在就創建;否則,不執行任何操作。
    --rebuilddb:重建
        無論是否存在,直接創建數據庫。

YUM

YUM是什么?
Yellow Dog Updata modify,是基于RPM的一款前端包管理工具。
YUM的功能是什么?
YUM通過倉庫的方式來實現自動下載安裝的過程,并通過元數據表來自動解決程序包的依賴問題。
YUM 原理

YUM Repository

YUM中的倉庫是什么?
是存儲了眾多的rpm包,以及包相關的元數據文件(repodata目錄下)。
文件服務器的形式:
ftp:// http:// nfs:// file:///

Create Repository:

  1. 通過命令創建。

     yum-config-manager --add-repo=[REPO_PATH]
  2. 通過配置文件創建。 vim /etc/yum.repos.d/*.repo

     [repo_ID]
     name=repo_name  
     baseurl=repo_path_url_1   指定倉庫URL,可以指定多個URL。   
              repo_path_url_2 
     enable={0|1}              是否開啟次倉庫,默認為1,啟用。
     enablegroups={0,1}     是否開啟包組功能,批量管理包,默認為1,啟用。
    
     gpgcheck={0|1}            是否開啟gpg檢查包完整性與合法性,默認為1,啟用。
     gpgcheck=KEY_PATH         指定gpg金鑰位置。
    
     failovermthhod={roundrobin|priority}    選擇使用哪一個URL。
                默認為roundrobin,隨機選擇URL。
                priority,按照順序輪詢。
    
     username , passwd         某些倉庫是需要身份驗證的。
     cost=#                  指定倉庫的開銷,默認數值為1000。

YUM命令的格式:

yum [COMMAND] [OPTION]

命令行的選項:

     -y   所有交互都選擇YES
     --nogpgcheck   不用進行完整性和合法性校驗
     --disablerepo [repoistory_ID]   關閉這個倉庫
     --enablerepo [repoistory_ID]   開啟這個倉庫
     --noplugins  禁止使用插件

查詢顯示:

     yum list [installed|updates] [glob...] 
     yum repolist   倉庫列表。
     yum info [glob...]   包信息。
     yum [provides | whatprovides] [glob...]   所具有的功能與依賴的功能。
     yum search [string...] 根據字段來查詢包。
     yum deplist [glob...]      列出依賴關系。
     yum history [info] [glob...]       不帶參數即查看歷史信息,info并指定glob查詢單獨一個包的歷史信息。

安裝,重裝:

     yum install [PACKAGE...]       安裝
     yum reinstall [PACKAGE...] 重裝

卸載,降級:

     yum remove [PACKAGE...]        刪除包。
     yum downgrade [PACKAGE...] 降級包。

清除,創建:

     yum clean [PACKAGE|metadata|expire-cache|rpmdb|plugins|all]    清除特定或者全部數據。
     yum makecache    創建緩存。

包組相關:

     yum grouplist      列出包組。
     yum groupinstall     安裝包組。
     yum groupupdate      升級包組。
     yum groupremove      刪除包組。
     yum groupinfo [GROUP_PACKAGE]      查詢包組信息。

yum倉庫文件的中變量詳解:

     $releasever :OS發行版主版本號
     $arch:平臺
     $basearch:基礎平臺
     $YUM0-$YUM9
     例如: http://mirros.163.com/centos/$releaserver/$basearch/$OS

Source Code Install

Source Code Install什么是?
源碼安裝,指的是通過還沒編譯的源代碼,自行編譯安裝程序包。
Source Code Install有什么功能?
通過源碼安裝安裝的程序與通過程序包安裝的程序基本功能完全一致。
Source Code Install有什么好處?
通過源碼安裝,可以靈活選擇程序模塊,自行指定安裝后的文件存放位置。

source code install

程序包安裝概述:

二進制程序包:
textapp-VERSION-release.src.rpm –>安裝后使用rpmbuild命令制作成二進制格式的rpm包,然后再安裝。

源碼安裝: 
源代碼 –> 預處理 –> 編譯(gcc) –> 匯編 –> 鏈接 –> 執行

源碼獲取渠道:

官方自建站點:
apache.org (ASF)
mariadb.org …

代碼托管:
sourceforge
Github.com
code.google.com

源碼安裝的步驟:

C代碼編譯安裝三步驟 :

  • ./configuer :
    (1)通過選項傳遞參數,指定啟用特性,安裝路徑等;執行時會參考用戶的指令以及Makefile.in文件生成makefile;
    (2)檢查依賴到的外部環境;

  • make:
    根據makefile文件,調用編譯器,構建應用程序;

  • make install:
    鏈接文件;

源碼安裝的基本命令以及參數:

    ./configure [option]
    --prefix=PREFIX    指定文件安裝路徑
    --sysconfdir=DIR        指定配置文件安裝路徑
    --help      查看幫助
    ...

    make

    make install

源碼安裝注意事項:

  1. 安裝前一定要查看文檔,README , INSTALL 兩個文檔。

  2. 如果自行知道安裝文件存放位置,請事前創建好程序文件存放目錄。

  3. 源碼安裝完成后,要將系統環境變量設置正確。

    PATH=[bin_PATH]$PATH        可執行文件路徑
    LD_LIBRARY_PATH=[lib_PATH]$LD_LIBRARY_PATH      動態庫文件路徑
    LIBRARY_PATH=[lib_PATH]$LIBRARY_PATH            靜態庫路徑
    C_INCLUDE_PATH=[include_PATH]$C_INCLUDE_PATH        頭文件路徑
    
    MAN中的幫助文檔路徑指定:
    在 /etc/man_db.conf 文件中添加: 
          MANDATORY_MANPATH                       /PATH/TO/man

原創文章,作者:Net18_肖肖,如若轉載,請注明出處:http://www.www58058.com/13533

(0)
Net18_肖肖Net18_肖肖
上一篇 2016-03-27 21:57
下一篇 2016-03-27 22:08

相關推薦

  • 關于touch/>/>>創建同名文件的總結

    一、簡介 1、touch     即創建文件或修改文件時間     語法:touch [options] file-list 2、>     創建文件,可直接把內容生成到指定文件,會覆蓋源文件中的內容;也可以直接生成一個空白文件。     語法:> file…

    2017-02-18
  • 文件權限

    一、文件權限        linux系統中文件眾多,針對不同的文件面向的對象不同,因此對其設置的權限各不相同,那么我們來對文件設置權限呢?               …

    Linux干貨 2016-08-08
  • 文件相關操作練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限: 2、編輯/etc/group文件,添加組hadoop: 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop: 4、復制/etc/sk…

    2017-11-17
  • 推薦-Linux命令幫助的獲取

    幫助命令 1. 使用幫助命令和幫助選項來獲取幫助 2. 使用man來查看命令使用手冊(manual) 3. 使用info來查看命令的信息頁 4. 程序自身的幫助文檔 5. 程序官方文檔 6. 發行版的官方文檔 7. 使用Google搜索關鍵字 1. 使用幫助命令和幫助選項來獲取幫助 Linux系統中命令分為【內部命令】和【外部命令】。 【內部命令】:內部命令…

    Linux干貨 2016-03-25
  • 第五周練習

    1.顯示當前系統上root,fedora或user1用戶的默認shell         # cat /etc/passwd | cut -d: -f1,7 | grep -E "(fedora|root|user1)" 2.找出/etc/rc.d/init.…

    Linux干貨 2016-11-26
  • LINUX用戶建立秘鑰認證實現SHELL腳本管理,分發,部署

    環境介紹 SSH Server [root@vm1 ~]# ifconfig |awk '/broadcast/{print $2}' 192.168.99.241 SSH Client [root@vm2 ~]# ifconfig |awk '…

    Linux干貨 2017-01-05

評論列表(1條)

  • stanley
    stanley 2016-03-27 22:03

    又見md,用了md確實很上檔次。邏輯清楚,內容豐滿,贊

欧美性久久久久