linux 軟件包管理

1、Linux軟件包管理

Redhat, SUSE: RPM

Redhat Package Manager

PRM is Package Manager

前端工具:yum, apt-get

后端工具:RPM, dpt

 

2、rpm:

數據庫:/var/lib/rpm 

rpm包: 軟件包作者下載源程序,編譯配置完成后,制作成rpm包

格式:name-VERSION-release.arch.rpm

例:httpd-2.4.6-40.el7.centos.x86_64.rpm

VERSION: major.minor.release

release:release.OS

主版本號:較大改變

次版本號:某個子功能發生變化

發行號:修正了部分bug,調整了一點功能

 

3、rpm:安裝、卸載、升級、查詢

 

安裝

rpm -i /PATH/TO/PACKAGE_FILE

-h: 以#顯示進度

-v: 顯示詳細過程

rpm -ivh /PATH/TO/PACKAGE_FILE 一般安裝參數

–nodeps: 忽略依賴關系;

–replacepkgs: 重新安裝,替換原有安裝;

–force: 強行安裝,可以實現重裝或降級;

查詢

rpm -q PACKAGE_NAME: 查詢指定的包是否已經安裝

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

rpm -qi PACKAGE_NAME: 查詢指定包的說明信息;

rpm -ql PACKAGE_NAME: 查詢指定包安裝后生成的文件列表;

rpm -qf /path/to/somefile: 查詢指定的文件是由哪個rpm包安裝生成的;

 

如果某rpm包尚未安裝,我們需查詢其說明信息、安裝以后會生成的文件;

rpm -qpi /PATH/TO/PACKAGE_FILE

rpm -qpl

 

升級

rpm -Uvh NEW_PACKAGE: 如果裝有老版本的,則升級;否則,則安裝;

 

!不要對內核做升級操作;Linux支持多內核版本并存,因此,對直接安裝新版本內核

!如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留

 

卸載

rpm -e PACKAGE_NAME

–nodeps

校驗

rpm -V PACKAGE_NAME

重建數據庫

rpm

–rebuilddb: 重建已安裝的包頭的數據庫索引目錄;

–initdb:初始化數據庫,沒有才建立,有就不用建立;

 

3、Yum 基于C/S的結構,可以解決軟件包的依賴關系

yum倉庫中的元數據文件: repodate  軟件的依賴關系等

Yum倉庫的校驗key:RPM-GPG-KEY-CentOS-x  使用建議導入key值

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-x

 

Yum的repo文件配置

[Repo_ID]

name=Description

baseurl=      配置倉庫類型  !!路徑為repodate的父目錄

ftp://    ftp服務器路徑

http://

file:///  本地鏡像掛載點

enabled={1|0}  啟用禁用

gpgcheck={1|0}

gpgkey=

 

Yum list all: 列表 支持glob

clean: 清理緩存

[ packages | headers | metadata | dbcache | all ]

更換yum源,要執行yum clean all 清理緩存

 

repolist: 顯示repo列表及其簡要信息,yum源開啟狀態 默認enabled

 

使用yum安裝軟件

yum [options] [command] [package …]   yum安裝軟件

-y: 自動回答為yes

–nogpgcheck

yum install/remove/updatePACKAGE_NAME

 

5、編譯安裝

前提:準備編譯環境

yum groups install “Development Tools”

# tar xxx.gz…

# cd

# ./configure  

–help   支持安裝選項和模塊

–prefix=/path

功能:1、讓用戶選定編譯特性;2、檢查編譯環境;

# make

# make install

ag:

# tar xf httpd-2.4.27.tar.bz2

# cd httpd-2.4.27

# ./configure

# make && make install

 

1、修改PATH環境變量,以能夠識別此程序的二進制文件路徑;

修改/etc/profile文件

/etc/profile.d/目錄建立一個以.sh為名稱后綴的文件,在里面定義export PATH=$PATH:/path/to/somewhere

2、默認情況下,系統搜索庫文件的路徑/lib, /usr/lib; 要增添額外搜尋路徑:

/etc/ld.so.conf.d/中創建以.conf為后綴名的文件,而后把要增添的路徑直接寫至此文件中;

# ldconfig 通知系統重新搜尋庫文件

-v: 顯示重新搜尋庫的過程

3、頭文件:輸出給系統

默認:/usr/include

增添頭文件搜尋路徑,使用鏈接進行:

/usr/local/tengine/include/   /usr/include/

兩種方式:

ln -s /usr/local/tengine/include/* /usr/include/ 或

ln -s /usr/local/tengine/include  /usr/include/tengine

4、man文件路徑:安裝在–prefix指定的目錄下的man目錄;/usr/share/man

1、man -M /PATH/TO/MAN_DIR COMMAND

2、在/etc/man.config中添加一條MANPATH

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

(0)
cuicui
上一篇 2017-08-06 23:10
下一篇 2017-08-07 02:17

相關推薦

  • Linux文件系統

    文件是什么?存儲空間內存儲的有邊界的一段流式數據,對數據可以做到按名存取。眾多文件是如何有效的組織起來?1.  平面化把眾多文件放在一起。當想查找某個文件時,需要遍歷所有文件,當文件數目足夠多的時候,查找一個文件將會非常慢,效率極低。2.  層級結構化根據后續查找文件的篩選條件進行分類,逐層放置,通常要查找一個文件,只需要從最高層級開始,…

    2017-09-05
  • 第一次寫的linux腳本

    剛開始學的時候,都是一些基本的命令,總是無法把它們聯系到一塊去,現在剛開始接觸腳本,頓時感覺壓力好大,基礎命令如果記不牢,很有可能就掛了,下面我把近幾天學習的一些腳本命令及練習拿來分享一下,供大家參考,同時加深我的記憶。 首先是寫腳本的格式,我這里用vim編輯器來寫的腳本,因為它的色彩非常明艷,易于區分?;靖袷饺缦拢?#!/bin/bash 第一行一般為調…

    Linux干貨 2017-08-05
  • 初識

    CPU:運算器、控制器、寄存器、緩存 分區不能直接被訪問,需要接口 磁盤0 第一分區  掛載mount      C 磁盤0 第一分區  掛載mount      C:\var 如果一個目錄沒有被分區單獨掛載,那么其數據存儲在父目錄所對應的…

    2017-07-11
  • find命令淺談

    本章內容   使用locate命令 ?使用find命令 ?使用Gnome搜索工具 ?壓縮和解壓縮工具 文件查找 在文件系統上查找符合條件的文件; ?文件查找:locate, find 非實時查找(數據庫查找):locate 實時查找:find locate 查詢系統上預建的文件索引數據庫 /var/lib/mlocate/mlocate.db ?依…

    Linux干貨 2016-08-15
  • find命令用法及示例

    文件查找 locate,find可是實現在文件系統上查找符合條件的文件 實現工具:locate,find locate有幾下幾個特性 1、依賴于事先構建好的索引庫; 2、系統自動實現;(周期性任務) 3、手動更新數據庫(updatedb) /var/lib/mlocate/mlocate.db 工作特性: 查找速度快; 模糊查找; 非實時查找 lo…

    Linux干貨 2016-08-18
  • 網絡組Network Team

    網絡組Network Team 網絡組team:是將多個網卡聚合在一起,從而實現容錯和提高吞吐量 1 創建網絡組接口 nmcli connection add type team con-name TEAMname ifname INTname [config JSON] TEAMname 指定連接名,INname指定接口名, JSON指定runner方式,…

    Linux干貨 2017-05-07
欧美性久久久久