天天看點

linux下軟體的安裝的三種方法

在CentOS或rhel下,軟體包的管理方式有三種:

一種是使用rpm安裝别人編譯好的軟體包,一種是使用yum,還有一種是使用編譯安裝

1、軟體包簡介

軟體包的組成部分:

    二進制程式:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin

    庫檔案:/lib,/usr/lib,/usr/local/lib

    配置檔案:/etc

    幫助檔案:手冊(/etc/man.config),README,INSTALL(/usr/share/doc/)

軟體包管理工具:rmp,dpt

    檔案清單

    檔案放置、安裝路徑

    提供的功能說明

    依賴關系

安裝程式的方式:

    通用二進制格式:直接展開就能使用

    軟體包管理器

    軟體包管理器的前端工具

    源代碼編譯

rmp:打包、安裝、查詢、更新、校驗、解除安裝、資料庫管理(重建)

編譯安裝:源代碼

編譯器:gcc,g++

    提供編譯環境:開發環境

    二進制

    庫:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf

    幫助手冊:/etc/man.config,man -M

    檔案:/usr/include

源程式的命名:name-version.tar.{gz|bz2|xz}包名-版本号

    版本号version:major.minor.release主版本号.次版本号.發行号(修正号)

主版本号通常用于辨別重大分支,通常而言,一個程式隻有做出重大改變,主版本号才會發生改變次版本号隻是部分功能發生改變發行号的目的主要是修複一些bug,調整一些工作屬性

    bash-4.3.1.tar.xz

rpm包命名:name-version-release.arch.rpm包名-版本号-發行号

    發行号release:是這個rpm包的軟體包自身的release号,跟程式沒有關系; 是用在辨別rpm包的制作者第幾次制作或第幾次修正rpm包的release号; 用于辨別rpm包本身的發行号,可還包含所使用的作業系統:el6:rhel6;centos6;el5;suse11

    arch:主機平台

i686、x86_64、amd64、ppc、noarch

    bash-4.3.2-5.el6.x86_64.rpm

rpm分包:

    主包:核心包

    分包:支包

    bind

    bind-devel

    bind-chroot

OS:安裝程式

RedHat系列官方公鑰:

    /etc/pki/rpm-gpg/

    RPM-GPG-KEY-CentOS-6

2、使用rmp安裝軟體包

2.1、rpm選項

rpm -i /PATH/TO/RPM_FILE

    -i:安裝軟體

    -v,-vv,-vvv:顯示詳細資訊

    -h:以#顯示安裝進度,一個#表示%2的進度

    -ivh

    -V 包名:校驗已安裝的軟體包

    -K(或--checksig):驗證合法性

    rpm -K zsh-4.3.10-7.el6.x86_64.rpm

    --nodeps:忽略依賴關系

    --test:測試安裝

    --replacepkgs:重新安裝

    -e 包名:解除安裝

    -q|--query 包名:查詢

        rpm -q zsh

    -qa:查詢所有已經安裝包

        rpm -qa | grep "pattern"

    -qi 包名:查詢包的摘要資訊

    -ql 包名:查詢包安裝生成的檔案清單

    -qc 包名:查詢包安裝生成的配置檔案

    -qd 包名:查詢包安裝生成的幫助文檔

    -qf /path/to/some_file:查詢某檔案是由哪個rpm安裝生成的

    -q --scripts 包名:查詢包安裝運作相關的腳本

        preinstall:安裝前腳本

        postinstall:安裝後腳本

        preuninstall:解除安裝前腳本

        postuninstall:解除安裝後腳本

    -qpi /path/to/rpm_file:查詢尚未安裝的包的相關資訊

    -qpi

    -qpl

    -qpc

    -qpd

    -qp --scripts

    -U:更新+安裝

    -F:更新

    -Uvh

    -Fvh

    --force:強行更新

注意:核心不應該更新,應該盡可能安裝,它允許多版本并存

rpm包的資料庫:

    /var/lib/rpm

    重建rpm包資料庫:

--initdb:建立(不會覆寫原來的檔案)

--rebuilddb:重建(會覆寫原來的檔案)

2.2、rpm安裝示例

rpm -ivh package_name.rpm

如:本地安裝(要有軟體包對可以)

也可從網絡安裝

缺點不能自己解決軟體包依賴關系

3、使用yum安裝軟體包

3.1、yum簡介

源碼格式的rpm包:

打包:rpm的包制作過程是根據spec檔案來完成的

rpmbuild

yum:RPM前端工具

要想使用好yum,要先配置好yum倉庫和

yum repository    yum倉庫

    ftb,http,file

路徑:存放了rpm包

    createrepo:

.repo

用戶端:

    yum install|reinstall|remove

    /etc/yum.conf

/etc/yum.repos.d/*.repo

    section:

    [main]          []用做倉庫定義

    [repository_ID]

    name=

    baseurl=

    enableed={1|0}

    gpgcheck={1|0}

    gpgkey=

gpg:檢查rpm簽名

    [base]

    name=CentOS 6.4 x86_64

    baseurl=http://192.168.1.20/cobbler/ks_mirror/centos-6.4-x86_64/

    enabled=1

    gpgcheck=1

yum用戶端:

yum SUBCOMMAND:

    list {all|installed|available}

    repolist [all|enabled|disabled]

    info 包名:檢視包的摘要資訊

yum info zsh

    grouplist:檢視目前yum源内有多少包組

    groupinfo 包組名:檢視包組的相關安裝包

yum groupinfo "Development tools"

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

    makecache:建立手動生成緩存

yum install package_name安裝包

    -y:自動回答為yes

    reinstall package_name重新安裝包

    update 包名更新

    update-to 包名 版本号

    remove 包名解除安裝

    provides whatprovides查詢某檔案是由哪個rpm安裝生成的

    groupinstall組安裝

開發組:

RHEL6:"Development tools"、"Server Platform Development"、"Desktop Platform Development"

RHEL5:"Development tools"、"Development Libraries"

    groupupdate更新

    groupremove移除

localinstall指令:RHEL5用于本地安裝rpm包,而不是通過yum源來安裝rpm包

HEL6既可以用于本地安裝,也可以用于yum源安裝

--nogpgcheck:避免檢查來源軟體包的合法性

history:檢視此前安裝解除安裝等操作曆史

version

yum倉庫的建立:

lftp:

    get:單檔案下載下傳

    mget:多檔案下載下傳

    mirror:鏡像一個目錄到本地

    bye:退出

    cd:切換

    pwd:檢視目前在什麼位置

3.2、安裝示例

配置網絡yum源

配置isoCD光牒yum源

安裝

4、使用編譯安裝軟體包

autoconf --> configure腳本 + Makefile.in = makefile

automake --> Makefile.in

make install

編譯安裝步驟:

    # cd SOURCE_CODE

    # ./configure

        檢查編譯環境是否完備

        讓使用者定制編譯配置(通過腳本選項來完成)

            --help

            --prefix=/usr/local/apache指定預設安裝路徑

            --sysconfdir指定配置檔案的存放位置

    # make

    # make install

庫檔案搜尋路徑:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf

/usr/local/apache/lib

# ldconfig -v:重新搜多目前系統上所有庫檔案所搜路徑下的庫檔案,并生成緩存/etc/ld.so.cache

/usr/local/apache/conf

/etc/man.config,

MANPATH /usr/local/apache/share/man

頭檔案:

ln -s