軟件包管理工具—yum命令總結

描述:

YUM: Yellowdog Update Modifier, rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,實現查詢、安裝、升級、刪除等功能

說明:

yum repository: yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下)

文件服務器:

ftp://

http://

file:///

yum客戶端配置文件:

/etc/yum.conf:為所有倉庫提供公共配置

/etc/yum.repos.d/*.repo:為倉庫的指向提供配置

倉庫指向的定義:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}

gpgcheck={1|0}

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority}   默認為: roundrobin(隨機挑選)

cost=    默認為1000

示例:

以教室服務器為yum源倉庫的配置

[root@localhost yum.repos.d]# cat magedu.repo 
[base]
name=CentOS 7
baseurl=http://10.1.0.1/cobbler/ks_mirror/7/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

顯示倉庫列表:

repolist [all|enabled|disabled]

[root@localhost yum.repos.d]# yum repolist
repo id         repo name         status
!base          CentOS 7          9,007
cdrom        CentOS 7 cdrom        9,007

顯示程序包:

# yum list [all | glob_exp1] [glob_exp2] […]

[root@localhost ~]# yum list tree      列出tree命令的程序包的信息
Available Packages
tree.x86_64   1.6.0-10.el7    base

# yum list {available|installed|updates} [glob_exp1][…]

安裝程序包:

install package1 [package2] […]

[root@localhost Packages]# yum -y install tree
Installed:
  tree.x86_64 0:1.6.0-10.el7        
Complete!

reinstall package1 [package2] […] (重新安裝)

升級程序包:

update [package1] [package2] […]

downgrade package1 [package2] […] (降級)

檢查可用升級:

check-update

卸載程序包:

remove | erase package1 [package2] […]

[root@localhost ~]# yum remove tree      刪除tree命令程序包
Removed:
  tree.x86_64 0:1.6.0-10.el7
Complete!

查看程序包information:info […]

[root@localhost ~]# yum info tree     查詢tree命令程序包的信息
Installed Packages
Name        : tree
Arch        : x86_64
Version     : 1.6.0
Release     : 10.el7
Size        : 87 k
Repo        : installed
From repo   : base

查看指定的特性(可以是某文件)是由哪個程序包所提供:

provides | whatprovides feature1 [feature2] […]

[root@localhost ~]# yum provides tree    查詢tree命令程序包是由哪個程序包提供的

tree-1.6.0-10.el7.x86_64 : File system tree viewer

Repo        : base

清理本地緩存:

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

構建緩存:

makecache

搜索: search string1 [string2] […]

以指定的關鍵字搜索程序包名及summary信息

查看指定包所依賴的capabilities:

deplist package1 [package2] […]

查看yum事務歷史:

history [info|list|packages-list|packages-info|

summary|addon-info|redo|undo|

rollback|new|sync|stats]

yum history

yum history info 6

yum history undo 6

日志 : /var/log/yum.log

安裝本地程序包:

localinstall rpmfile1 [rpmfile2] […](用install替代)

及升級本地程序包:

localupdate rpmfile1 [rpmfile2] […](用update替代)

包組管理的相關命令:

groupinstall group1 [group2] […]

groupupdate group1 [group2] […]

grouplist [hidden] [groupwildcard] […]

groupremove group1 [group2] […]

groupinfo group1 […]

如何使用光盤當作本地yum倉庫:

(1) 掛載光盤至某目錄,例如/media/cdrom

# mount /dev/cdrom /media/cdrom

(2) 創建配置文件

[CentOS7]

name=

baseurl=

gpgcheck=

enabled=

示例:

使用本地光盤當作本地倉庫

[cdrom]
name=CentOS 7 cdrom
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1

yum的命令行選項:

–nogpgcheck:禁止進行gpg check

-y: 自動回答為“ yes”

-q:靜默模式

–disablerepo=repoidglob:臨時禁用此處指定的repo

–enablerepo=repoidglob:臨時啟用此處指定的repo

–noplugins:禁用所有插件

yum倉庫

yum的repo配置文件中可用的變量:

$releasever: 當前OS的發行版的主版本號

$arch: 平臺, i386,i486,i586,x86_64等

$basearch:基礎平臺; i386

$YUM0-$YUM9:自定義變量

實例:

http://server/centos/$releasever/$basearch/

http://server/centos/7/x86_64

http://server/centos/6/i384

創建yum倉庫:

createrepo [options] <directory>

程序包編譯

程序包編譯安裝:

Application-VERSION-release.src.rpm –> 安裝后,使

用rpmbuild命令制作成二進制格式的rpm包,而后再安裝

源代碼–>預處理–>編譯(gcc)–>匯編–>鏈接–>執行

源代碼組織格式:

多文件:文件中的代碼之間,很可能存在跨文件依賴關系

C、 C++: make (項目管理器, configure –>Makefile.in –> makefile)

java: maven

編譯安裝

C代碼編譯安裝三步驟:

1、 ./configure:

(1) 通過選項傳遞參數,指定啟用特性、安裝路徑等;執行時會參考用戶的指定以及makefile.in文件生   成makefile

(2) 檢查依賴到的外部環境

2、 make:根據makefile文件,構建應用程序

3、 make install:復制文件到相應路徑

開發工具:

autoconf: 生成configure腳本

automake:生成Makefile.in

注意:安裝前查看INSTALL, README

編譯安裝

開源程序源代碼的獲取:

官方自建站點:

apache.org (ASF)

mariadb.org

代碼托管:

SourceForge.net

Github.com

code.google.com

c/c++編譯器: gcc (GNU C Complier)

編譯安裝

編譯C源代碼:

前提:提供開發工具及開發環境

開發工具: make, gcc等

開發環境:開發庫,頭文件

glibc:標準庫

通過“包組”提供開發組件

CentOS 6: "Development Tools",

"Server Platform Development",

編譯安裝

第一步: configure腳本

選項:指定安裝位置、指定啟用的特性

–help: 獲取其支持使用的選項

選項分類:

安裝路徑設定:

–prefix=/PATH: 指定默認安裝位置,默認為/usr/local/

–sysconfdir=/PATH:配置文件安裝位置

System types:支持交叉編譯

編譯安裝

Optional Features: 可選特性

–disable-FEATURE

–enable-FEATURE[=ARG]

Optional Packages: 可選包,

–with-PACKAGE[=ARG],依賴包

–without-PACKAGE,禁用依賴關系

第二步: make

第三步: make install

示例:源碼編譯安裝http

1,下載 httpd 源碼包到當前目錄下

[root@localhost ~]# lftp 10.1.0.1
lftp 10.1.0.1:~> mget pub/Sources/sources/httpd/httpd-2.2.29.tar.bz2 
5625498 bytes transferred                                   
lftp 10.1.0.1:/> bye
[root@localhost ~]# ls
httpd-2.2.29.tar.bz2

2,解壓縮 httpd 源碼包到當前目錄下

[root@localhost ~]# tar -xf httpd-2.2.29.tar.bz2 
[root@localhost ~]# ls
httpd-2.2.29    httpd-2.2.29.tar.bz2

3,運行configure腳本,指定默認安裝路徑和配置文件安裝路徑

[root@localhost ~]# cd httpd-2.2.29;ls
acinclude.m4  configure      include         Makefile.in    README-win32.txt
[root@localhost httpd-2.2.29]# file configure
configure: POSIX shell script, ASCII text executable, with very long lines
[root@localhost httpd-2.2.29]# ./configure --prefix=/usr/local/httpd2 --sysconfdir=/etc/httpd2

4,執行make命令

[root@localhost httpd-2.2.29]# make

5,執行make install

[root@localhost httpd-2.2.29]# make install

6,關閉防火墻

[root@localhost bin]# iptables -F

7,運行 apachectl 腳本

[root@localhost httpd-2.2.29]# cd /usr/local/httpd2/bin;ls
apachectl  apu-1-config  checkgid  envvars    htcacheclean  htdigest  httpd
[root@localhost bin]# file apachectl 
apachectl: POSIX shell script, ASCII text executable
[root@localhost bin]# ./apachectl start

8,查看 httpd 服務是否開啟(80端口)

[root@localhost bin]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
       ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN

9,訪問 httpd 服務

wKioL1e9SZqx80MyAAAfgcUZYOk902.png

編譯安裝后的配置:

(1) 二進制程序目錄導入至PATH環境變量中;

編輯文件/etc/profile.d/NAME.sh

export PATH=/PATH/TO/BIN:$PATH

[root@localhost profile.d]# vim apache.sh 
PATH=$PATH:/usr/local/httpd2/bin
[root@localhost profile.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/httpd2/bin

(2) 導入庫文件路徑

編輯/etc/ld.so.conf.d/NAME.conf

添加新的庫文件所在目錄至此文件中;

[root@localhost ~]# vim /etc/ld.so.conf.d/httpd2.conf

讓系統重新生成緩存:

ldconfig [-v]

[root@localhost ~]# ldconfig -v

(3) 導入頭文件

基于鏈接的方式實現:

ln -sv

[root@localhost httpd2]# ln -s /usr/local/httpd2/include/ /usr/include/http2
[root@localhost httpd2]# cd /usr/include/;ls
ctype.h  http2  netipx  shadow.h   utmp.h
[root@localhost include]# ll http2
lrwxrwxrwx. 1 root root 26 Aug 24 13:19 http2 -> /usr/local/httpd2/include/

(4) 導入幫助手冊

編輯/etc/man.config|man_db.conf文件,添加一個MANPATH

[root@localhost ~]# vim /etc/man_db.conf 
MANDATORY_MANPATH       /usr/local/httpd2/man


總結:

1,yum命令是基于rpm命令的,若rpm命令沒安裝或者誤刪除,則yum命令也使用不了

2,yum命令可以解決軟件間的依賴性問題

3,yum命令的使用是基于yum倉庫的建立,在/etc/yum.repos.d目錄下創建一個以*.repo 結尾的文件為yum源的倉庫,最重要的為baseurl=路徑,其路徑必須為可訪問或已存在系統上的,若不存在或不能訪問,則使用yum命令時會出現找不到相應的軟件包,無正確的信息輸出到屏幕上;倉庫文件若有多個,必須確保每個文件的baseurl=路徑可以正常訪問,則使用yum命令時會去找所有的倉庫文件路徑出現找不到相應的軟件包,無正確的信息輸出到屏幕上。

4,創建yum源倉庫的文件格式:

  [repositoryID]

  name=Some name for this repository

  baseurl=url://path/to/repository/   (可指定多個路徑)

  enabled={1|0}   (0表示禁用,1表示啟用,默認啟用)

  gpgcheck={1|0}   (0表示不檢測,1表示檢測)

  gpgkey=URL

  enablegroups={1|0}

  failovermethod={roundrobin|priority}

5,利用yum命令實現源代碼安裝的主要步驟:

  a,./configure:

   –prefix=/PATH: 指定默認安裝位置,默認為/usr/local/

   –sysconfdir=/PATH:配置文件安裝位置

  b,make:根據makefile文件,構建應用程序

  c,make install:復制文件到相應路徑

6,常用選項:

 安裝

yum install 全部安裝

yum install package1 安裝指定的安裝包package1

yum groupinsall group1 安裝程序組group1

 更新和升級

yum update 全部更新

yum update package1 更新指定程序包package1

yum check-update 檢查可更新的程序

yum upgrade package1 升級指定程序包package1

yum groupupdate group1 升級程序組group1

 查找和顯示

yum info package1 顯示安裝包信息package1

yum list 顯示所有已經安裝和可以安裝的程序包

yum list package1 顯示指定程序包安裝情況package1

yum groupinfo group1 顯示程序組group1信息yum search string 根據關鍵字string查找安裝包

 刪除程序

yum remove | erase package1 刪除程序包package1

yum groupremove group1 刪除程序組group1

yum deplist package1 查看程序package1依賴情況

 清除緩存

yum clean packages 清除緩存目錄下的軟件包

yum clean headers 清除緩存目錄下的 headers

yum clean oldheaders 清除緩存目錄下舊的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers


作業:

1,源碼安裝apache

1,下載 httpd 源碼包到當前目錄下

[root@localhost ~]# lftp 10.1.0.1
lftp 10.1.0.1:~> mget pub/Sources/sources/httpd/httpd-2.2.29.tar.bz2 
5625498 bytes transferred                                   
lftp 10.1.0.1:/> bye
[root@localhost ~]# ls
httpd-2.2.29.tar.bz2

2,解壓縮 httpd 源碼包到當前目錄下

[root@localhost ~]# tar -xf httpd-2.2.29.tar.bz2 
[root@localhost ~]# ls
httpd-2.2.29    httpd-2.2.29.tar.bz2

3,運行configure腳本,指定默認安裝路徑和配置文件安裝路徑

[root@localhost ~]# cd httpd-2.2.29;ls
acinclude.m4  configure      include         Makefile.in    README-win32.txt
[root@localhost httpd-2.2.29]# file configure
configure: POSIX shell script, ASCII text executable, with very long lines
[root@localhost httpd-2.2.29]# ./configure --prefix=/usr/local/httpd2 --sysconfdir=/etc/httpd2

4,執行make命令

[root@localhost httpd-2.2.29]# make

5,執行make install

[root@localhost httpd-2.2.29]# make install

6,導入至PATH環境變量中

[root@localhost profile.d]# vim apache.sh 
PATH=$PATH:/usr/local/httpd2/bin
[root@localhost profile.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/httpd2/bin

7,導入庫文件路徑

[root@localhost ~]# vim /etc/ld.so.conf.d/httpd2.conf

8,讓系統重新生成緩存

[root@localhost ~]# ldconfig -v

9,導入頭文件

[root@localhost httpd2]# ln -s /usr/local/httpd2/include/ /usr/include/http2

[root@localhost httpd2]# cd /usr/include/;ls
ctype.h  http2  netipx  shadow.h   utmp.h
[root@localhost include]# ll http2
lrwxrwxrwx. 1 root root 26 Aug 24 13:19 http2 -> /usr/local/httpd2/include/

10,導入幫助手冊

[root@localhost ~]# vim /etc/man_db.conf 
MANDATORY_MANPATH       /usr/local/httpd2/man

11,關閉防火墻

[root@localhost bin]# iptables -F

12,運行 apachectl 腳本

[root@localhost httpd-2.2.29]# cd /usr/local/httpd2/bin;ls
apachectl  apu-1-config  checkgid  envvars    htcacheclean  htdigest  httpd
[root@localhost bin]# file apachectl 
apachectl: POSIX shell script, ASCII text executable
[root@localhost bin]# ./apachectl start

13,查看 httpd 服務是否開啟(80端口)

[root@localhost bin]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
       ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN

14,訪問 httpd 服務

wKioL1e9SZqx80MyAAAfgcUZYOk902.png

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

(0)
pingskypingsky
上一篇 2016-08-29
下一篇 2016-08-29

相關推薦

  • 安裝LNMP + 搭建WordPress個人博客

    安裝LNMP + 搭建Wordpress個人博客 前言 來到馬哥教育也有幾個月了,學了很多知識?,F在想要把這些知識能夠存儲在一個地方,隨時隨地的都能看到,于是乎我就想到了博客,以下我搭建Wordpress的過程。 安裝LNMP 一、關掉防火墻 # chkconfig iptables off 二、安裝開發包和庫文件 #&nbsp…

    Linux干貨 2016-05-31
  • wordpress和discuz的負載均衡(lvs-nat)

    實驗目的:利用lvs-nat模型實現wordpress和discuz的負載均衡 實驗要求:客戶端訪問wordpress或Discuz服務時,無論被調度至哪臺RS上,其會話和訪問的頁面都應保持一致; 實驗環境:一臺server用作VS(需要兩塊網卡,eth1連接內部網絡,eth0連接外部網絡),兩臺server用作RS,一臺server用于部署mysql、NF…

    2017-05-13
  • 管道及重定向

    管道及重定向 1、重定向 在Linux中有時我們在命令的執行過程中,不想將執行結果顯示到屏幕上,或者將其結果輸出到其他位置 這時就需要重定向來解決這個問題了 首先了解一下Linux中的3種I/O設備: 0:標準輸入 1:標準輸出 2:標準錯誤輸出 輸出重定向:> >> 輸入重定向: < << >:將標準輸出重定向到文…

    Linux干貨 2017-07-28
  • keepalived相關配置示例(二)

    虛擬服務器配置實驗: 兩臺centos6主機為web service系統為CentOS6.8 n1:172.16.253.87 n2:172.16.252.5都安裝httpd yum install -y httpd[root@n1 ~]#vim /var/www/html/index.html<h1>Real Server 1</h1&g…

    Linux干貨 2017-06-28
  • 2016/10/26作業:用戶和組的相關配置文件

    linux系統是通過文件來保存配置的,其中關于用戶和組的配置文件包括以下幾個: /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/login.defs /etc/default/useradd /etc/passwd 存放用戶信息的配置文件,其基本格式如下 root:x:0:0:root:/root:/…

    Linux干貨 2016-10-26
  • Linux運維實戰之2-2:bash的工作特性

    這次博文我們主要來談談bash的工作特性哈。 主要內容: bash是一種shell解釋程序     bash工作特性之命令狀態返回值 bash工作特性之命令行展開 bash工作特性之命令補全 bash工作特性之路徑補齊 bash工作特性之命令引用 bash工作特性之命令別名 bash工作特性之文件名通配 bash工作特性之命令hash 問…

    Linux干貨 2016-11-06
欧美性久久久久