Linux軟件包管理與實例

Linux系統的早期,編譯是利用程序代碼生成可執行文件的過程的手動編譯。雖具有一定優勢,但是專業知識要求高,不利于實際操作。因此出現了許多軟件包管理器,最具代表的是由Red Hat 推出的RPMYum則有利于解決linux安裝軟件時的依賴性。

所謂依賴性,就是linux系統中的軟件將不同的功能模塊單獨寫入到不同的軟件包中,最后將多個相互依存的軟件包結合起來形成一個應用程序(網上答案)。通俗來說,就是你在linux安裝程序時,會接二連三的要求你先安裝與正要安裝的程序有依賴性的軟件才可以。

以下分別講述rpmyum

rpm包命名方式:

name -VERSION-release.arch.rpm

VERSION: minor major release

release: release.OS

常見的arch:

×86i386, i486, i586, i686

×86_64: ×64, ×86_64, amd64

以下是RPM軟件包名稱格式:

Linux軟件包管理與實例

包命名和工具:

Linux軟件安裝包的類型

通常Linux應用軟件的安裝包有三種:
1tar包,如software-1.2.3-1.tar.gz。他是使用UNIX系統的打包工具tar打包的。
2rpm包,如software-1.2.3-1.i386.rpm。他是Redhat Linux提供的一種包封裝格式(www.rpmfind.NET)。
3dpkg包,如software-1.2.3-1.deb。他是Debain Linux提供的一種包封裝格式。
4) bin包,如RealPlayer11GOLD.bin,它是realplayerlinux文件下的二進制安裝格式,它是源程序經過編譯后的一種機器語言。
5)腳本安裝文件,這一類格式比較多,例如后綴為shpl、run的文件都是腳本文件。不過對于普通用戶不太常見。安裝這類文件要注意的問題是,多數要給文件先增加可執行權限,否則有可能會提示找不到文件。具體方法:終端或控制臺下執行 chmod +x ***.*,然后再安裝。

一:rpm

Rpm命令基本格式:

rpm [option]

-q : 使用查詢模式

-a : 查詢所有軟件包

-i : 顯示所有詳細信息。如果指定了軟件包,則安裝軟件包

–install 安裝

–test 檢測

–nodeps 忽略依賴性關系直接安裝

–replacepkgs 已安裝過的包重裝

–nosignature 不檢查來源合法性

–nodigest 不檢查包完整性

–noscripts 不執行程序包腳本

%pre: 安裝前腳本; –nopre

      %post: 安裝后腳本; –nopost

      %preun: 卸載前腳本; –nopreun

      %postun: 卸載后腳本; –nopostun

-l : 顯示軟件包的文件列表

-p : 查詢指定的軟件包

-f : 查詢指定文件所屬軟件包

-v : 顯示命令執行過程

-h : 安裝軟件包時顯示進度信息

-e : 卸載指定的軟件包

-U : 升級軟件包

實例:

如果想查看已經安裝的所有軟件包:

[root@localhost ~]# rpm -qa

如果想查看某個軟件包:

[root@localhost ~]# rpm -qa | grep 軟件包名

查詢文件所屬軟件包(需要輸入文件的絕對路徑)

[root@localhost ~]# which ls

[root@localhost ~]# rpm -qf /usr/bin/ls

使用rpm命令安裝軟件包

[root@localhost ~]# df #查看光盤是否掛載

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       48803552 4772816  44030736  10% /

devtmpfs         1001392       0   1001392   0% /dev

tmpfs            1016064      84   1015980   1% /dev/shm

tmpfs            1016064    9172   1006892   1% /run

tmpfs            1016064       0   1016064   0% /sys/fs/cgroup

/dev/sda5       48803552   33008  48770544   1% /app

/dev/sda1         972452  156004    816448  17% /boot

tmpfs             203216      16    203200   1% /run/user/42

tmpfs             203216       0    203216   0% /run/user/0

/dev/sr0         8086368 8086368         0 100% /media

[root@localhost ~]# cd /media

[root@localhost media]# ls

CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7

EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7

EULA             isolinux  repodata  TRANS.TBL

[root@localhost media]# cd Packages/

[root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm

Preparing…                          ################################# [100%]

Updating / installing…

   1:tree-1.6.0-10.el7                ################################# [100%]

[root@localhost Packages]# rpm -qa tree

tree-1.6.0-10.el7.x86_64

使用rpm卸載軟件包:

[root@localhost Packages]# rpm -e tree

-Uvh 當有舊的版本的包時,則卸載舊包再裝新包,如沒有舊包,直接裝新包

-Fvh 當有舊的包時,卸載舊包裝新包,無舊包時,什么也不做

–oldpackage 降級 已有新包,裝舊包

–force 強制安裝

 -q 軟件包名  查詢已安裝過的軟件包名。

     -qa 列出所有的已安裝過的rpm

      -qa “name*”

      -qa |grep name

     -qf 查詢一個文件來自于哪一個rpm包 (已安裝的rpm

     -q –changelog 版本更新日志

     -qc 查詢軟件包的配置文件(不是所有包都有配置文件)

     -qd 查詢軟件包的幫助文檔

     -qi 查詢軟件包的詳細信息

     -ql 查詢軟件包所安裝到系統當中的所有文件路徑

     -q –scripts 查詢軟件包自帶的腳本

     -q –provides 查詢自身的功能

     -qR 查詢實現自身的功能需要什么能力

     -qp[licd] rpm包 查看未安裝的rpm包的各項信息二:yum

-e 軟件名

    –nodeps 忽略依賴性。強制卸載

二:yum

Yumyum倉庫,yum倉庫里放著rpm包文件和元數據文件(放置于特定目錄repodate下)。其工作原理是:

當執行yum install rpmfilename(安裝軟件包時),會先下載元數據里記錄rpm依賴關系數據的文件,同時臨時產生一個文件來緩存這些數據,然后就會下載所有有依賴關系的安裝包,最后執行安裝,安裝完成之后會刪除那個臨時文件。

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:意為隨機挑選,默認值

priority:按順序訪問

cost=默認為1000

Yum的用法:

yum check-update 列出所有可更新的軟件清單

yum update 安裝所有更新軟件

yum install <package_name> 僅安裝指定的軟件

yum remove <package_name> 刪除指定軟件包

yum list 列出所有可裝的軟件清單

yum list updates 列出所有可更新的軟件包

yum list installed 列出所有已安裝的軟件包

yum list extras 列出所有已安裝但不在yum repository 內的軟件包

yum search <keyword> 查找軟件包

yum info 列出所有軟件包的信息

yum provides <package_name>  列出軟件包提供哪些文件

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

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

以上所列有針對所有文件,若你想只針對單個包文件進行操作,只需跟上包文件名就可以了。

注意:不建議只執行yum update命令,因為會造成所有軟件都會更新安裝,如非需要,在工作中盡量不要執行此條命令。

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

(0)
xxcjxxcj
上一篇 2017-08-13 15:43
下一篇 2017-08-13 17:55

相關推薦

  • 馬哥教育21期網絡班—第六周課程+練習—-成長進行時

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/rc.sysinit&nbs…

    Linux干貨 2016-08-03
  • FHS文件系統各目錄及Linux文件類型和顏色標識整理

    一.FHS (Filesystem Hierarchy Standard文件系統層級標準)   使用文件系統層級標準可以使軟件和用戶可以預測已安裝文件和文件夾位置 文件系統各目錄:   /boot     系統引導啟動時要加載的靜態文件,內核和ramdisk及grub等    (系統啟動時…

    Linux干貨 2016-10-17
  • Liunx學習小結2

    1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。文件管理類命令有:cp、mv、rmcp [選項] [參數]選項:-a:此參數的效果和同時指定”-dpR”參數相同;-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;-f:強行復制文件或目錄,不論目標文件或目錄…

    Linux干貨 2017-07-31
  • 網絡管理之網絡配置與網絡組

    網絡屬性配置 回顧: TCP/IP協議棧:物理層,數據鏈路層,網絡層,傳輸層,應用層,     鏈路數據層:以太網幀     網絡層:IP報文      傳輸層:TCP,UDP     應用…

    Linux干貨 2016-09-06
  • Linux之計劃任務

    Linux 之計劃任務    任務計劃Linux任務計劃、周期性任務執行未來的某時間點執行一次任務:atbatch:系統自行選擇空閑時間去執行此處指定的任務周期性運行某任務:cron   at任務at命令:at [option] TIME常用選項:-V 顯示版本信息:-l: 列出指定隊列中等待運行的作業;相當于atq-d: 刪除…

    Linux干貨 2016-09-11
  • 根DNS域名解析的實現

    一、實現從根,com,rj.com 模擬互聯網的DNS架構 DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。 接下來就一起開始搭建吧 首先,我們需要計劃好實驗環境,包括實驗的步驟思路 1)實驗環境(最好是畫圖展示,能使思路清…

    2017-04-25
欧美性久久久久