天天看點

linux軟體包的安裝筆記

應用程式存放位置:

 二進制程式:

  /bin    /sbin

  /usr/bin   /usr/sbin

  /usr/local/bin   /usr/local/sbin

 庫檔案(就是功能子產品):

  /lib     /usr/lib

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

 頭檔案:

  /usr/include

 配置檔案:

  /etc

  /etc/httpd/

 幫助檔案:

  /usr/share/man

       /etc/man.config

  /usr/share/doc

軟體管理功能:

 安裝

 解除安裝

 更新

 查詢

 校驗

RedHat

 Redhat package Manager:RPM(标準的軟體管理格式)

rpm格式的軟體包的命名:

 name-version-release.arch.rpm

 子rpm包name-subname

 version:

  major(主版本号)

  minor(次版本号)

  release(發行号),bug的修正

 release:rpm包的制作者制作的次數

 arch:硬體架構,平台

   i386、i486、i586、i686,x86_64

   noarch(與平台無關)

一個軟體包為了管理上的友善,在制作成rpm包時,可以分為多個功能相對獨立rpm包

 name-version:主包

 name-subname-version:子包

 name-devel-version:庫檔案,頭檔案

二進制程式:有格式,特定于某硬體平台(編譯器自身會在軟體編譯時對軟體在特定平台上的運作進行優化)

依賴關系:

 需要自動判斷依賴關系,又能自動解決依賴關系軟體包管理工具:

    前端管理工具的出現: yum:yellowdog update modifier(阿黃更新管理器)

linux上軟體包的安裝途徑:

 1、rpm包

  rpm指令

  yum指令

 2、源碼包

  編譯安裝

 3、編譯好的二進制壓縮包,解壓後配置使用

  Mysql

  NongoDB

rpm指令:

    rpm -i PACKAGE1 PACKAGE2 …

    rpm -U|-F PACKAGE1 PK2 …

    rpm -e PK_name PK2_name

    rpm -q

 檢驗

    rpm -V PK_name

rpm包中包含的内容:

 要安裝的檔案

 要執行的腳本

     pre  安裝前要執行的腳本

     post  安裝後要做收尾工作執行的腳本

     preun  解除安裝之前執行的腳本

     postun  解除安裝完成後執行的腳本

安裝:(包與包廂的所依賴的東西叫capacity(能力))

 rpm -i

     -v   顯示安裝的詳細資訊,v越多,資訊越詳細

     -h   顯示安裝進度

     --test  安裝前的測試,不做安裝

     --nodeps  忽略依賴關系

     --replacepkgs  由于一個已安裝的軟體包的某些檔案被删除時,重裝一個軟體包,替換

     --force 強行安裝,無視沖突

解除安裝:

 rpm -e PKG_name

     --nodeps

更新:old-->new;new-->old(降級)

 rpm

  -F:old-->new,無old,則不new;

  -U:old-->new,無old,則安裝new;

  -v

  -h

  注意:核心不應該更新安裝,核心允許多版本并存,是以,可直接安裝多個不同版本核心

  --oldpackage   降級

查詢:

 rpm -q PKG_NAME

 rpm -qa

 rpm -qi PKG_NAME  查詢已安裝軟體包的資訊

單向加密:

 rpm 包:單向加密:提取資料特征碼

  1、如果原資料一樣,結果一定會一樣

  2、雪崩效應:原資料有一點點不同,結果大不同

 rpm包的驗證簽名:

    用官方的公鑰解密這段加密的特征碼,得到可靠的官方提供的特征碼;

    自己再使用同樣的方法提取的特征碼,并比較和解密出來的特征碼是否一緻;

 rpm -ql PKG_NAME  用于列出此rpm包安裝完成後在系統上生成了哪些檔案

 rpm -qf FILE(路徑)  使用者查詢某檔案是由哪個rpm安裝包生成的

 rpm -qc PKG_NAME    查詢rpm包生成的配置檔案

 rpm -qd PKG_NAME    查詢此rpm包生成的文檔

 rpm -q --scripts PKG_NAME 查詢rpm包内置的腳本

 rpm -qpl PKG   查詢還沒有安裝的rpm包在安裝後會建立哪些檔案

 rpm -qpi PKG   查詢還沒有安裝的rpm包的詳細資訊

檢驗:

 rpm -V PKG-NAME 檢查某rpm包安裝生成的檔案有沒有被非法改變過;

 rpm -k PKG 檢查簽名

檢驗簽名:

 rpm --import 密鑰檔案(/etc/pki/rpm-gpg)

 rpm -k PKG

     --nodigest:不檢驗單向加密的相關内容(sha1,md5)

     --nosignature:不檢驗簽名(gpg,dsa)

rpm資料庫:(var/lib/rpm)

 rpm --initdb   重新初始化丢失的庫

            --rebuilddb 重建,無論事前是否存在

yum: 自動解決依賴關系

 repository:倉庫,這裡存放的就是yum源資料

 擷取資料的方法:

   1、yum倉庫在本地某目錄    file:///

   2、yum倉庫在遠端伺服器

        ftp://

 http://

yum倉庫包括的内容:

 rpm包

 repodata/   隻有包含此目錄為其子目錄的那個路徑才可以用作yum源

    repomd.xml 此檔案儲存時間戳

    primary.xml.gz 目前yum倉庫内每一個rpm包的名字及其彼此間的依賴關系,此外還包含每一個rpm包能夠安裝生成的檔案

    filelists.xml.gz 所有rpm包包含的安裝生成的檔案的檔案清單

    other.xml.gz 額外資訊,主要包含的是rpm包的changellog(改變日志)

yum指令,有許多子指令

     /etc/yum.conf

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

     /etc/yum/pluginconf.d/

yum的配置檔案 分為兩段

全局配置

分段配置

[repo]

name=primary yum repository

baseurl=file:///var/yumrepo/server(本地)  ftp://192.168.0.254/pub/server(遠端伺服器上)  ftp://username:[email protected]/pub/server(有使用者名和密碼的伺服器)

enabled=1    是否啟用這個yum源

gpgcheck=1   是否檢測rpm包的簽名

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

yum的指令:

 repolist   列出來已安裝的包

 list {installed|available|updates|all}

 clean {all|packages|metadata}

  清除cache(中繼資料,rpm包)

 grouplist

 groupinfo "groupname"

 info PKG_NAME 顯示指定包的資訊

 search KEYWORD   查找指定關鍵字的包

 whatprovides FILE  查找某檔案是由哪個包安裝生成的

 provides FILE 查找某檔案是由哪個包安裝生成的

 install PKG_NAME

 remove PKG_NAME

 update

 groupinstall 組名

 groupremove 組名

 reinstall

 check-update檢測哪些能更新的包

 localinstall

自己建立yum源:

1、yum install createrepo   先安裝createrepo指令

2、把rpm包放在一個目錄 /var/myum

3、createrepo /var/myum   運作這個指令後/var/myum下會産生repodata目錄

4、vi /etc/yum.repos.d/local.repo