Linux rpm包、rpm源碼包及tar源碼包的安裝詳解

在使用linux系統的過程當中,軟件包的安裝是避免不了的,在linux下,軟件安裝程序的種類不少,安裝方法也格式各樣,論安裝的溫馨確定比不上windows,windows安裝軟件基本就是用鼠標點擊下一步,若是學習linux的軟件包安裝,還像windows那樣點擊鼠標下一步安裝,那就太對不起linux的shell了,linux的shell比linux的圖形化界面要強大太多了。好了廢話很少說了,安裝軟件包,首先要了解軟件包的組成。前端

軟件包由二進制文件、庫文件、配置文件、幫助文件、頭文件等這重要的部分組成。他們分別存放在系統的那些路徑裏面?node

二進制文件:/bin,  /sbin,  /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbinlinux

庫文件:/lib,  /usr/lib, /usr/local/libnginx

配置文件:/etcshell

幫助文件:/usr/share/man,  /usr/local/share/man,  {像README, INSTALL文件主   要存放在 /usr/share/doc}數據庫

頭文件:/usr/include/apache

一、軟件包的安裝方法之rpm安裝的相關操做windows

rpm包的組成:name-version-release.arch.rpmcentos

      name:表示包的名稱,包括主包名和分包名緩存

      version:表示包的版本信息

      release:用於標識rpm包自己的發行號,可還包含適應的操做系統

      arch:表示主機平臺,noarch表示此包能安裝到因此平臺上面

gd-devel-2.0.35-11.el6.x86_64.rpm

      gd是這個包的主包名,devel是這個包的分包名,

      2.0.35是表示版本信息,2爲主版本,0爲此版本,35爲修訂號,

      11.el6中的11是表示發行號,el6表示是RHEL6,

      x86_64是表示包適合的平臺,若是是noarch這表示與平臺無關

 

option

參數解釋

Example

安裝

-i

安裝

 
 

-v|-vv|-vvv

顯示詳細信息

 
 

-h

以#顯示安裝進度一個#表示2%的進度

rpm -ivh zsh-4.3.10-5.el6.x86_64.rpm

 

--nodeps

忽略依賴關係

 
 

--test

測試安裝

 
 

--replacepkgs

從新安裝(安裝的包已經安裝了)

 

升級

-U   -Uvh

升級+安裝

 
 

-F    -Fvh

升級(此包已經安裝了)

 
 

--force

有衝突強制升級

 
 

--nodeps

忽略包依賴性關係

 

卸載

-e

卸載

rpm  -e  包名

 

--nodeps

忽略包依賴性關係

 

查詢

-q  |--query

 

rpm -q|--query  包名

 

-qa

查看全部已經安裝的包

rpm -qa  查看全部包名

rpm -qa |  grep 包名查看某個包名

 

-qi

查看包的摘要信息

 
 

-qf

查看文件是有那個包安裝的

rpm  -qf  /path/to/file

 

-ql

查看包安裝生成的文件清單

 
 

-qc

查看包安裝生成的配置文件

 
 

-qd

查看包安裝生成的幫助文檔

 
 

-q  --scripts

查看相關的腳本

rpm -q--script   包名

 

-qp[i|l|d|c]

查看還沒有安裝包的詳細信息

rpm -qpi /path/to/rpm_file

校驗

-V

 

rpm -V   包名

數據庫管理

--initdb

新建

rpm  --initdb

 

--rebuilddb

重建

rpm  --rebuilddb

 

二、軟件包的安裝方法之yum安裝的相關操做

yum(Yellowdog Update  Manager),yum是RPM的前端工具,是基於RPM的一個管理工具,他能自動的解決安裝rpm包產生的依賴關係。

yum的配置文件    /etc/yum.conf

yum倉庫的搭建是使用yum安裝的前提,如何搭建一個好的yum倉庫?

     1)首先要在yum倉庫的文件(/etc/yum.repos.d/)中創建一個以.repo結尾的文件;

     2)[  ]方括號裏面是寫倉庫的ID(repository_ID),名稱能夠隨便取,但必須惟一;

     3)name是yum的名稱也能夠隨便取,也必須惟一;

     4)baseurl指定你能夠能經過本機、http或者ftp訪問到那些rpm包的所在路徑,該路徑下必須有一個    

        repodata的文件,好比/media下面有那個repodata的文件,那你的baseurl指向/media/,若是  

是/media/Server下面有那個repodata的文件,那你的baseurl指向 /media/Server/目錄;

     5)enabled默認爲1,1表示啓用此倉庫,0表示不啓,

     6)gpgcheck默認也是爲1,1表示檢查公鑰,當檢查公鑰時要指定gpgkey的地址,0表示不檢查,不

        檢查公鑰就不用指gpgkey的地址,若是是本地光盤搭建yum倉庫,則能夠設置gpgcheck=0

     7)當gpgcheck=1時,gpgkey指向包含RPM-GPG-KEY-CentOS-6這個文件的路徑

     8)cost是表示花費代價,cost默認是2000,越小越先訪問

用光盤搭建本地yum倉庫的方法:

1

2

3

4

5

6

7

8

mount/dev/cdrom   /media

cat>> /etc/yum.repos.d/iso.repo<<EOF

[iso]

name=centos6.4-x86_64

baseurl=file:///media/

gpgcheck=0

enable=1

EOF

 

搭建外網的yum倉庫(sohu的yum倉庫)的方法

1

2

3

4

5

6

7

8

cat>> /etc/yum.repos.d/sohu.repo<<EOF

[sohu]

name=Internet-centos

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

gpgcheck=1

enable=1

gpgkey=http://mirrors.sohu.com/centos/RPM-GPG-KEY-CentOS-6

EOF

$releasever:表示你的系統的版本,變量會自動的檢測你的版本

 

$basearch:表示CPU的架構,是x86_64,仍是i386系列

若是本身在網上下載了不少rpm軟件包,也想搭建一個yum倉庫,則使用createrepo

createrepo會生成一個repodata的軟件信息倉庫文件,而後搭建該目錄的yum倉庫

rpm包能夠在下面兩個網站去搜索

http://rpm.phone.net

http://www.rpmfind.net

http://pkgs.org/

 

103521896.png

103641463.png

 

103553135.png

 

 

1

2

3

4

5

6

cat>> /etc/yum.repos.d/xen.repo << EOF

[xen]

name=centos-xen

baseurl=file:///root/xen-4.1  #存放軟件的路徑且路徑中有repodata這個文件

gpgcheck=0

EOF

搭建完xen的yum後,能夠用yum安裝xen了

104159653.png

yum經常使用的命令:

 

操做命令

命令解釋

列表

yum list  <package_name>

列出指定安裝軟件的清單

 

yum list installed

列出全部已安裝的軟件包

 

yum list extras

列出全部已安裝但不在 Yum  倉庫內的軟件包

 

yum grouplist

列出全部的組

 

yum grouplist "Group1"

列出指定組的軟件包列表

安裝

yum -y install  <package_name>

安裝指定的軟件

 

yum  -y groupinstall   "Group1"  "Group2"  

安裝指定的組

 

yum -y localinstall <package_name>

用yum安裝下載到本地的rpm包

更新

yum check-update

列出全部可更新的軟件清單

 

yum update

安裝全部更新軟件

 

yum update  <package_name>

更新指定的軟件

信息

yum  info

顯示全部包的信息

 

yum  info <package_name>

顯示指定包的信息

 

yum  groupinfo "Group1"   "Group2"

顯示指定組的信息

清除

yum clean all

清除全部yum所保存的信息

 

yum clean metadata

只清空保存的數據信息

其它操做

yum  repolist [all|enable|disable]

查看yum倉庫的個數,默認顯示啓用的

 

yum   makecache

手動生成緩存

 

yum search  <package_name>

查詢rpm包

 

yum reinstall  <package_name>

從新安裝一遍

 

yum provides  <package_name>

列出軟件包提供哪些文件

 

用yum安裝開發組

(RHEL6.x)

yum  -y groupinstall        "DesktopPlatform Development"     "Development  tools"  "Server Platform Development"

(RHEL5.x)

yum  -y  groupinstall       "Development  tools " "Development  Libraries"

三、軟件包安裝之tar源碼包編譯安裝

tar編譯安裝的三部曲:

     在安裝三部曲以前,建議先看看解壓以後目錄裏面的包含README, INSTALL文件,這裏面的文件會告訴你詳細安裝步驟。

    1)configure        檢測編譯環境

     2)make               進行編譯

     3)make install     編譯安裝

http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.bz2

下載apache的tar源碼包地址

 

 

1

2

3

4

5

6

7

8

9

10

11

#安裝tar源碼包能夠先安裝開發工具,能夠減小安裝相關的依賴性包

[root@Redhat6 ~]# yum  -y groupinstall   "DesktopPlatform Development"     "Development tools"  "Server Platform Development"

[root@Redhat6 ~]#tar xf httpd-2.2.25.tar.bz2    #先解壓

[root@Redhat6 ~]# cd httpd-2.2.25  #進入到解壓後的目錄

[root@Redhat6 httpd-2.2.25]# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite   #檢查編譯環境

[root@Redhat6 httpd-2.2.25]# make  #編譯

[root@Redhat6 httpd-2.2.25]# make install  #編譯安裝

[root@Redhat6 httpd-2.2.25]# cd /usr/local/apache  #進入到安裝的目錄下面

[root@Redhat6 apache]# ls    #查看安裝生成了那些文件

bin    cgi-bin  error   icons    lib   man     modules

build  conf     htdocs  include  logs  manual

 

 

用tar安裝包後須要修改幾個地方,使得tar安裝包後能與系統識別的路徑相關聯

 

1)、改PATH環境變量

寫到/etc/profile.d/*.sh------>source /etc/profile 裏面寫安裝軟件後bin的路徑

 

1

2

echo"PTAH=/usr/local/apache/bin:$PATH">>/etc/profile.d/apache.sh

source/etc/profile

或者直接 export PATH=/usr/local/apache/bin:$PATH

 

2)、添加庫文件的搜索  /etc/ld.so.conf/    etc/ld.so.conf.d/*.conf

在/etc/ld.so.conf.d/*.conf  寫 lib的路徑  ldconfig -v    

1

2

echo"/usr/local/apache/lib">>/etc/ld.so.conf.d/apache.conf

ldconfig -v| grepapache

 

3)、幫助文檔的使用  /etc/man.conf    MANPATH

在/etc/man.config寫 man手冊的路徑

1

echo"MANPATH /usr/local/apache/man ">>/etc/man.config

而後就能夠直接使用man httpd等命令了,不在配置文件中指定路徑能夠直接

man -M /usr/local/apache/man httpd

4)、關聯繫統所識別的頭文件

把頭文件的路徑連接到系統頭文件中, ln  -sv 源  目的  /usr/include

1

ln-sv /usr/local/apache/include//usr/include/apache

作完這些操做後源碼包安裝的軟件的使用方法能夠和rpm安裝的使用方法類似了

[root@Redhat6 ~]# apachectl start    #開啓服務

114007712.png

四、軟件包安裝之rpm源碼包src安裝

1)先用rpm安裝rpm源碼包生成spec文件,這個文件在用戶家目錄的rpmbuild目錄下的SPECS裏面

      2)在用rpmbuild編譯spec文件生成rpm文件

      3)而後用rpm或者yum安裝生成的rpm包

下載nginx的rpm源碼包,經過此包來安裝nginx,所需包的下載地址

http://mirrors.sohu.com/fedora-epel/6Server/SRPMS/nginx-1.0.15-5.el6.src.rpm

ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-devel-1.4.8-1.el6.x86_64.rpm

ftp://195.220.108.108/linux/epel/6/x86_64/GeoIP-1.4.8-1.el6.x86_64.rpm

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

[root@Redhat6 opt]#yum -y install rpm-build

[root@Redhat6 opt]#useradd -r mockbuild  #先添加一個用於安裝src包的系統用戶

[root@Redhat6 opt]#rpm -ivh nginx-1.0.15-5.el6.src.rpm  #在安裝src包,安裝完成後會再用戶的家目錄生成一個rpmbuild的文件

[root@Redhat6 ~]# cd ~/rpmbuild/

[root@Redhat6 rpmbuild]# ls

SOURCES  SPECS

[root@Redhat6 rpmbuild]# cd SPECS/

[root@Redhat6 SPECS]# ls

nginx.spec

[root@Redhat6 SPECS]# rpmbuild -ba nginx.spec  #編譯rpm源碼包

error: Failed build dependencies:  #須要解決依賴性包,GeoIP-devel包能夠在網上下載

    GeoIP-devel is needed by nginx-1.0.15-5.el6.x86_64

    gd-devel is needed by nginx-1.0.15-5.el6.x86_64

    libxslt-devel is needed by nginx-1.0.15-5.el6.x86_64

    pcre-devel is needed by nginx-1.0.15-5.el6.x86_64

#在網上下載這些包了以後用yum安裝解決依賴性

[root@Redhat6 opt]#yum -y install  GeoIP-1.4.8-1.el6.x86_64.rpm GeoIP-devel-1.4.8-1.el6.x86_64.rpm  libxslt-devel pcre-devel gd-devel

[root@Redhat6 rpmbuild]# cd SPECS/

[root@Redhat6 SPECS]# rpmbuild -ba nginx.spec   #編譯生成rpm包

[root@Redhat6 SPECS]# cd /root/rpmbuild/

[root@Redhat6 rpmbuild]# ls

BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

[root@Redhat6 rpmbuild]# cd RPMS/

[root@Redhat6 RPMS]# ls

x86_64

[root@Redhat6 RPMS]# cd x86_64/

[root@Redhat6 x86_64]# ls

nginx-1.0.15-5.el6.x86_64.rpm  nginx-debuginfo-1.0.15-5.el6.x86_64.rpm

[root@Redhat6 x86_64]# rpm -ivh nginx-1.0.15-5.el6.x86_64.rpm

Preparing...                ########################################### [100%]

   1:nginx                  ########################################### [100%]

[root@Redhat6 x86_64]# service nginx start

Starting nginx:                                            [  OK  ]

 

122153281.png

 

經過rpm源碼包安裝的訪問已經可以成功了。

相關文章
相關標籤/搜索