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

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

# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm

也可從網絡安裝

rpm -ivh http://mirrors.aliyun.com/centos/6.6/os/x86_64/Packages/tree-1.5.32.el6.x86_64.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源

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak    #防止base.repo中[base]衝突
vim base.repo
    [base]
    name=base
    baseurl=http://mirrors.sohu.com/centos/6.6/os/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

配置iso光盤yum源

# mkdir /mnt/cdrom
# vim /etc/fstab
/root/CentOS-6.6-x86_64-bin-DVD1.iso    /mnt/cdrom    iso9660    loop    0 0    #
# mount -t iso9660 -o loop /root/CentOS-6.6-x86_64-bin-DVD1.iso /mnt/cdrom
# vim base.repo
[base]
name=base
baseurl=http://mirrors.sohu.com/centos/6.6/os/x86_64/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
cost=1000
[cdrom]
name=cdrom
baseurl=file:///mnt/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
cost=100
# yum clean all        #清緩存
# yum makecache        #建緩存

安裝

# yum grouplist
# yum groupinstall "Development tools"
# yum install 軟件包


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

# tar -xvf axel-2.4.tar.gz
# cd axel-2.4
# ./configure --prefix=/usr/local/axel
# make
# make install        #安裝
# echo 'PATH=/usr/local/axel/bin:$PATH' > /etc/profile.d/axel.sh    #axel執行路徑
# . /etc/profile        #使配置文件生效
# vim /etc/man.config
# MANPATH /usr/local/axel/share/man        #添加axel的man查找命令


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章