Linux軟件包管理

一、rpm包管理工具

1、rpm包簡介

rpm是redhat的軟件包管理器。rpm包管理器全稱rpm: Redhat Package Manager RPM  Package Manager。它的軟件包后綴也為.rpm。除此外,debian,deb文件有dpkg包管理器。


rpm包的命名方式:

源代碼:name-version.tar.{gz|bz2|xz} 例如:zip-3.0-1.el6_7.1.x86_64.rpm

version:major.minor.release 

major:主版本 重大的分支

minor:次版本,其中某個功能有所改變

release:發行號,修正了某個BUG,修改了某個代碼。

RPM格式:

yum-presto-0.6.2-1.el6.noarch.rpm

如:0.6.2為程序版本號,1.el6是release,noarch.rpm是使用的什么硬件架構平臺

name-VERSION-relese.arch.rpm

version: 這是源代碼的版本。就是上面的majob,minor,release。

release.arch:打包版本號。rpm的發行號。 

arch(archetecture)是硬件架構或系統的平臺類型。


2、程序包管理

功能:將編譯好的應用程序的各組成文件打包一個或幾個 程序包文件,從而方便快捷地實現程序包的安裝、卸載、查詢、 升級和校驗等管理操作。

包管理主要包括如:打包、安裝、查詢、升級、卸載、校驗、數據庫管理


3、包管理工具的使用

1)安裝(常用組合rpm -ivh PACKAGE_.RPM)

rpm -ivh openssl-1.0.1e-48.el6.x86_64.rpm  


rpm [OPTIONS]  [PACKAGE_FILE]
     安裝:-i,–install

    卸載:-e,–erase

    查詢:-q,通常結合qa使用

    顯示:-v,顯示過程,-vv顯示更詳細的信息

    升級:-U,–update

    -h:hash marks輸出進度條;每個#表示2%的進度; 
    –test:測試安裝,檢查并報告依賴關系及沖突消息等; 
    –nodeps:忽略依賴關系;不建議; 
    –replacepkgs:重新安裝                   

2)升級

rpm {-U|–upgrade} [install-options]PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …

-U:升級或安裝;如果原本就沒有安裝此軟件,則安裝。
-F:升級,如果沒有安裝些軟件,則不升級。

–force:強制升級;有時候低版本的程序可能被其它程序所依賴,這時升級會報錯。如果強制升級很可能會導致一些程序不能使用。這也是還要使用源代碼安裝軟件的一個原因。

rpm -Uvh openssl-devel-3.0.1.el6_7.1.x86_64.rpm

rpm -Fvh openssl-devel-3.0.1.el6_7.1.x86_64.rpm


3)卸載
rpm -evh PACKAGE_NAME 

例如:rpm -evh tree 


4)查詢 

rpm {-q|–query} [select-options] [query-options]

-a, –all:查詢所有已經安裝過的包,場結合qa一期使用;

-f  FILE:查詢指定的文件由哪個程序包安裝生成;
-p, –package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;

二、yum 包管理工具

1、簡介

yum全稱為:Yellowdog Update Modifier,可以解決包與包之間的依賴關系,使得程序包安裝簡潔方便、快速。yum包安裝分為本地yum和網絡yum兩類別。

文件服務器(共享rpm包,通常使用http服務): 通過yum所支持的文件共享機制將各rpm包通過文件服務共享。
倉庫存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄下:repodata)

2、yum客戶端配置和倉庫的設置

要使用yum管理應用程序,首先得配置其可用的yum倉庫,保存在配置文件中:

/etc/yum.conf:為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:為倉庫的指向提供配置
 

配置文件格式:由兩段組成,類似windows的ini配置文件。
[main] : 主配置段 
[repo] : 倉庫配置段

其中/etc/yum.conf中一般是[main]配置段的設置,/etc/yum.repos.d/下面的各以.repo結尾的文件一般都是配置[repo]倉庫段的。當然也可以把倉庫段寫到yum.conf文件中。不過這樣分開設置的原因就是為了清晰,容易配置。


[main]

cachedir=/var/cache/yum/$basearch/$releasever #緩存目錄

keepcache=0    #是否緩存二進制文件,0緩存,1不緩存 

debuglevel=2     #調試級別

logfile=/var/log/yum.log #日志文件

exactarch=1    

obsoletes=1

gpgcheck=1    #包合法性檢查

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release

/yum.repos.d/*.repo文件配置如下:

[repo_ID] #所有倉庫的此項不能相同

name=string #倉庫名稱

baseusrl=url://path/to/somefile #倉庫的訪問路徑

enable={1|0} #0表示關閉次倉庫 1表示啟動

gpgcheck={1|0} #0表示禁用,1表示啟用

gpgkey=URL #公鑰文件,可以在本地也可以在服務器端的路徑

實例如下所示:

[c6-media]

name=CentOS-$releasever – Media

baseurl=file:///media/CentOS/

        file:///media/cdrom/

        file:///misc/cd/

        file:///media/cdrecorder/

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

一個repo文件可以設置多個倉庫信息。 baseurl指定倉庫的的方式

客戶端配置文件指定對應服務器訪問方式:  
ftp   ftp://****/repo
http  http://xxxx/reop

nfs   ntf://****/nts_path
file  file:///****/repository     
三個斜線是因為一個是本地的根目錄路徑。
所指向的目的就是有repodata目錄的目錄。

我們這里舉個例子,就以我們系統的光盤為例,它就是一個倉庫。

wKioL1e1Dr6AOOYAAAApq3vGMJU635.png

配置本地yum源倉庫:

[root@centos6 yum.repos.d]# cat local.repo

[local]

name=local-yum-repo

baseurl=file:///media/cdrom

gpgcheck=0

enable=1

[root@centos6 yum.repos.d]#yum clean all 

[root@centos6 yum.repos.d]yum repolist all 

wKioL1e1GBvg3HdFAABUC9lzug8533.png


yum命令

yum [options] [command] [package …]

   選項:  

    –nogpgcheck:禁止進行gpg check;

    在用yum安裝本地包的時候可能會用到。不然沒有key是無法安裝的。
    -y: 自動回答為“yes”;不用確認,自動安裝。
    -q:靜默模式;
    –disablerepo=repoidglob:臨時禁用此處指定的repo;
    –enablerepo=repoidglob:臨時啟用此處指定的repo;
    –noplugins:禁用所有插件;

常用選項:

    yum -y install Packages 

    yum clean all 

    yum erase Packages 

    yum group list 

各位如想了解搭建網絡源具體步驟可查看:http://purify.blog.51cto.com/10572011/1832034

三、編譯安裝程序包軟件  

一、簡介

主要是通過C代碼的編譯實現軟件的安裝,主要步驟如下所示:./configure make make install 

編譯源程序的步驟:

# tar xf testapp-version.tar.{xz|bz2|gz}

# cd testapp-version

# ./configure

還需通過許多選項指定編譯特性

# make

# make install

./configure腳本的使用:

1、獲取幫助

./configure –help

2、較通用的一些選項

安裝路徑相關:

–prefix=/path/to/somewhere: 指定安裝路徑

–sysconfdir=/path/to/somewhere: 指定配置文件安裝路徑

指定啟用/禁用的特性

–enable-FEATURE: 例如–enable-fpm

–disable-FEATURE: 例如–disable-socket

指定所依賴的功能、程序或文件

–with-FUNCTION[=/path/to/somewhere]

–without-FUNCTION

安裝后的配置:

程序運行:

1、讓二進制程序直接,而無須輸入路徑

# vim /etc/profile.d/APPNAME.sh

export PATH=$PATH:/path/to/somewhere

source /etc/profile.d/

2、導出手冊頁:

編輯/etc/man.config配置文件,添加一項MANPATH,路徑為新安裝的程序的man目錄;

# man -M /path/to/somewhere KEYWORD

程序開發:如果其它應用程序依賴此程序的開發環境,或針對此程序做二次開發

1、導出庫文件

第一步:指定讓系統搜索定制的路徑

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

一行一個庫文件路徑

第二步:觸發系統重新搜索所有的庫文件并生成緩存

# ldconfig 

-v

2、導出頭文件

/usr/local/nginx/include

系統找頭文件的路徑是:/usr/include

導出方式:創建鏈接進行

ln -sv /usr/local/nginx/include /usr/include/nginx

本文參照來自互聯網及其自行總結,如有相似之處純屬正常。

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

(0)
alrenalren
上一篇 2016-08-21
下一篇 2016-08-21

相關推薦

  • 軟鏈接和硬鏈接及兩者之間的不同

    在 Linux 上被分成兩個部分:用戶數據 (user data) 與元數據 (metadata)。用戶數據,即文件數據塊 (data block),數據塊是記錄文件真實內容的地方;而元數據則是文件的附加屬性,如文件大小、創建時間、所有者等信息。在 Linux 中,元數據中的 inode 號(inode 是文件元數據的一部分但其并不包含文件名,inode 號…

    Linux干貨 2016-12-05
  • TIME_WAIT引起Cannot assign requested address報錯

    1.  問題描述      有時候用redis客戶端(php或者java客戶端)連接Redis服務器,報錯:“Cannot assign requested address?!?     原因是客戶端頻繁的連接服務器,由于每次連接都在很短時間內結束,導致很多的TIME_WAIT。所以新的連…

    Linux干貨 2016-03-09
  • Linux磁盤管理及其相關命令使用

    Linux磁盤及文件系統    CPU MEMORY(RAM) I/O    I/O:disks entercard    Disks:持久存儲數據    接口類型:      IDE(ata):并行 133MB/s     &n…

    Linux干貨 2016-08-26
  • Linux磁盤管理

     I/O Ports:I/O設備地址   一切皆文件:             poen(),read(),write(),close()   設備類型:     &nb…

    Linux干貨 2016-08-29
  • ansible運維自動化工具

      ansible簡介 運維工具分類:         agent:基于專用的agent程序完成管理功能,puppet, func, zabbix, …        agent…

    Linux干貨 2016-11-11
  • 習題

    1.當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 2.當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 3.當用戶wangcai 對/testdir 目錄無寫權限時,該目錄下的只讀文件file1是否可修改和刪除? 4.復制/etc/fstab文件到/var/tmp下,設置文件所有者為wa…

    Linux干貨 2016-08-04
欧美性久久久久