Linux系統(tǒng)下軟件安裝與管理

Linux系統(tǒng)下軟件安裝與管理

在周寧等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站設計、做網(wǎng)站 網(wǎng)站設計制作專業(yè)公司,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站制作,周寧網(wǎng)站建設費用合理。

一、二進制(RPM)程序包概述

1、二進制程序包的組成部分:

二進制文件、庫文件、配置文件、幫助文件

[root@dayi123 ~]# rpm -qpl/mnt/cdrom/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm

/etc/httpd             

/etc/httpd/conf          #二進制程序包組成部分配置文件

/etc/httpd/conf.d

……

/usr/sbin/httpd          #二進制程序包組成部分二進制文件

……

/usr/lib64/httpd/modules/mod_access_compat.so

/usr/lib64/httpd/modules/mod_actions.so  #二進制程序包組成部分庫文件

……

/usr/share/man/man8/rotatelogs.8.gz      #二進制程序包組成部分幫助文件

/usr/share/man/man8/suexec.8.gz

……

2、二進制程序包管理器

(1)debian:deb文件, dpkg包管理器

(2)redhat: rpm文件, rpm包管理器

3、二進制程序包的命名:

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

說明:

    http:軟件包名

    2.4.6:軟件版本

    40:軟件編譯版本

    el7.centos:適合的硬件平臺

    x86_64:適合的硬件平臺

    .rpm:包擴展名

4、rpm包的分類:

1)主包:Application-VERSION-ARCH.rpm

2)開發(fā)子包:Application-devel-VERSION-ARCH.rpm

3)其他子包:Application-utils-VERSION-ARHC.rpm

4)其他子包:Application-libs-VERSION-ARHC.rpm

如httpd包:

[root@dayi123 ~]# ls /mnt/cdrom/Packages/httpd*     

/mnt/cdrom/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm

/mnt/cdrom/Packages/httpd-devel-2.4.6-40.el7.centos.x86_64.rpm

/mnt/cdrom/Packages/httpd-manual-2.4.6-40.el7.centos.noarch.rpm

/mnt/cdrom/Packages/httpd-tools-2.4.6-40.el7.centos.x86_64.rpm

5、程序包之間的依賴關系

(1)依賴關系:二進制程序包之間一般存在的依賴關系有:樹形依賴,環(huán)形依賴及模塊依賴。

(2)查看庫文件及依賴關系:

1)查看二進制程序所依賴的庫文件:ldd /PATH/TO/BINARY_FILE

    2)顯示本機已經(jīng)緩存的所有可用庫文件名及文件路徑映射關系:/sbin/ldconfig -p

    3)庫文件的配置文件(如果想添加新的庫文件,可在/etc/ld.so.conf.d下新建以.conf結尾的文件,在文件中添加庫文件路勁即可):/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

    4)庫文件的緩存文件:/etc/ld.so.cache

[root@dayi123 ld.so.conf.d]# ldd /bin/ls    #查看二進制程序依賴的庫文件

 linux-vdso.so.1=>  (0x00007ffc17f8c000)

 libselinux.so.1=> /lib64/libselinux.so.1 (0x00007f91c6e60000)

 libcap.so.2 =>/lib64/libcap.so.2 (0x00007f91c6c5b000)

……

[root@dayi123 ld.so.conf.d]# /sbin/ldconfig –p  #查看本機緩存的可用庫文件

302 libs found in cache `/etc/ld.so.cache'

 p11-kit-trust.so(libc6,x86-64) => /lib64/p11-kit-trust.so

 libzzipwrap-0.so.13 (libc6,x86-64) =>/lib64/libzzipwrap-0.so.13

 libzzipmmapped-0.so.13 (libc6,x86-64) =>/lib64/libzzipmmapped-0.so.13

(3)解決依賴包的管理工具:

    1)yum:rpm包管理器的前端工具

2)apt-get:deb包管理器前端工具

3)zypper: suse上的rpm前端管理工具

4)dnf: Fedora 18+ rpm包管理器前端管理工具

6、程序包管理器:

(1)功能:將編譯好的應用程序的各組成文件打包一個或幾個程序包文件,從而方便快捷地實現(xiàn)程序包的安裝、卸載、查詢、升級和校驗等管理操作

(2)包文件組成(每個包獨有)

RPM包內(nèi)的文件、RPM的元數(shù)據(jù)(如名稱,版本,依賴性,描述等)、安裝或卸載時運行的腳本

(3)數(shù)據(jù)庫(公共):/var/lib/rpm

包含內(nèi)容:程序包名稱及版本、程序包之間依賴關系、程序包功能說明、包安裝后生成的各文件路徑及校驗碼信息

二、RPM包管理

1、包名與包全名:

(1)包全名:操作的包時沒有安裝的rpm包時,要使用包全名,而且要注意路徑

(2)包名:操作已經(jīng)安裝的軟件包時,使用包名,是搜索/var/lib/rpm中的數(shù)據(jù)庫

2、通過rpm進行軟件包的安裝:

(1)安裝:rpm {-i|--install} [install-options] PACKAGE_FILE…

     選項說明:-i(install):安裝

               -v(verbose):顯示詳細信息

               -h(hash):顯示進度

(2)常用安裝選項

    --test:測試安裝,但不真正執(zhí)行安裝,即dry run模式

    --nodeps:忽略依賴關系

--replacepkgs實現(xiàn)軟件覆蓋安裝

--replacefiles對一個已經(jīng)存在的文件進行覆蓋安裝

--nosignature:安裝時不檢查來源合法性

--nodigest:安裝時不檢查包完整性

--noscripts:安裝時不執(zhí)行程序包腳本

#用rpm安裝軟件

[root@dayi123 ld.so.conf.d]# rpm -ivh /mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm

Preparing...                         ################################# [100%]

Updating / installing...

  1:tree-1.6.0-10.el7               ################################# [100%]

#安裝完成后在此安裝時提示已安裝

[root@dayi123 ld.so.conf.d]# rpm -ivh/mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm

Preparing...                         ################################# [100%]

        packagetree-1.6.0-10.el7.x86_64 is already installed

#實現(xiàn)覆蓋安裝

[root@dayi123 ld.so.conf.d]# rpm -ivh /mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm

--replacepkgs

Preparing...                         ################################# [100%]

Updating / installing...

  1:tree-1.6.0-10.el7               ################################# [100%]

[root@dayi123 ld.so.conf.d]# rpm -ivh/mnt/cdrom/Packages/php-5.4.16

-36.el7_1.x86_64.rpm

error: Failed dependencies:    #部分軟件安裝時需要安裝依賴軟件

       php-common(x86-64) = 5.4.16-36.el7_1 is needed byphp-5.4.16-36.el7_1.x86_64

       php-cli(x86-64) = 5.4.16-36.el7_1 is needed byphp-5.4.16-36.el7_1.x86_64

3、通過rpm進行軟件包的升級

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

1)升級方法

rpm{-U|--upgrade} [install-options] PACKAGE_FILE...(即:rpm –Uvh PACKAGE_FILE)

rpm{-F|--freshen} [install-options] PACKAGE_FILE...(即:rpm–Fvh PACKAGE_FILE)

2)兩種方法的區(qū)別:

upgrade:安裝有舊版程序包,則“升級”如果不存在舊版程序包,則“安裝”

freshen:安裝有舊版程序包,則“升級”如果不存在舊版程序包,則不執(zhí)行升級操作

(2)降級:--oldpackage

(3)強制安裝(功能等同于覆蓋安裝):--force

rpm –ivh –force PACKAGE_FILE

#更新軟件

[root@dayi123 ~]# rpm -Uvh/mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm

Preparing...                          ################################# [100%]

Updating / installing...

  1:tree-1.6.0-10.el7                #################################[100%]

#強制安裝軟件包

[root@dayi123 ~]# rpm -ivh --force/mnt/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm     

Preparing...                         ################################# [100%]

Updating / installing...

  1:tree-1.6.0-10.el7               ################################# [100%]

(4)升級內(nèi)核(Linux支持多內(nèi)核,不建議升級內(nèi)核,直接安裝新內(nèi)核即可):

[root@dayi123 Packages]# uname –r    #查看當前的系統(tǒng)版本

2.6.32-642.el6.x86_64

[root@dayi123 Packages]# rpm -ivhkernel-2.6.32-696.el6.x86_64.rpm

error: Failed dependencies:   #安裝內(nèi)核時提示需要安裝依賴包

       kernel-firmware >= 2.6.32-696.el6 is needed bykernel-2.6.32-696.el6.x86_64

[root@dayi123 Packages]# rpm -ivhkernel-2.6.32-696.el6.x86_64.rpm kernel-firmware

-2.6.32-696.el6.noarch.rpm   #同時安裝內(nèi)核和依賴包

Preparing...               ########################################### [100%]

  1:kernel-firmware       ########################################### [ 50%]

   2:kernel                ###########################################[100%]

安裝完成后重啟系統(tǒng)生效,安裝完成后配置文件/etc/grub.conf中會多一個開機啟動選項,重啟系統(tǒng)時,也會多一個選項。主要配置文件如下:

default=0       #默認啟動那一項

timeout=5      #開機時grub等待時間

splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.32-696.el6.x86_64)    #第0個啟動項

        root(hd0,0)

        kernel/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=68b0f8ab-7ccc-4fc4-8bbc-a9

92f91e9847 rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MDSYSFONT=latarcyrheb

-sun16 c

rashkernel=auto  KEYBOARDTYPE=pcKEYTABLE=us rd_NO_DM rhgb quiet

        initrd/initramfs-2.6.32-696.el6.x86_64.img

title CentOS 6 (2.6.32-642.el6.x86_64)   #第一個啟動項

        root(hd0,0)

        kernel/vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=68b0f8ab-7ccc-4fc4-8bbc-a9

92f91e9847 rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MDSYSFONT=latarcyrheb

-sun16 c                      

4、通過rpm軟件包的查詢

(1)查詢命令:rpm {-q|--query} [select-options] [query-options]

(2)[select-options]

-a:所有包

-f:查看指定的文件由哪個程序包安裝生成

-p rpmfile:針對尚未安裝的程序包文件做查詢操作

--whatprovides:查詢指定的CAPABILITY(能力)由哪個包所提供

--whatrequires:查詢指定的CAPABILITY(能力)被哪個包所依賴

[root@dayi123 ~]# rpm -qf /bin/ls    #查詢ls命令有哪個軟件包生成

coreutils-8.4-43.el6.x86_64

#查詢未安裝的軟件包的信息

[root@dayi123 ~]# rpm -qp/mnt/cdrom/Packages/php-5.3.3-49.el6.x86_64.rpm

php-5.3.3-49.el6.x86_64

#查詢bash所提供的能力被那些包所依賴

[root@dayi123 ~]# rpm -q --whatrequires /bin/bash

glibc-common-2.12-1.192.el6.x86_64

nss-softokn-freebl-3.14.3-23.el6_7.x86_64

groff-1.18.1.4-21.el6.x86_64

……

(3)[query-options]

--changelog:查詢rpm包的changelog

-c:查詢程序的配置文件

-d:查詢程序的文檔

-i:查詢軟件包信息

-l:查看指定的程序包安裝后生成的所有文件

--scripts:程序包自帶的腳本

--provides:列出指定程序包所提供的CAPABILITY

-R:查詢指定的程序包所依賴的CAPABILITY

#查看php安裝完成后生成的所有配置文件

[root@dayi123 ~]# rpm -qpl/mnt/cdrom/Packages/php-5.3.3-49.el6.x86_64.rpm  

/etc/httpd/conf.d/php.conf

/usr/lib64/httpd/modules/libphp5.so

/var/lib/php/session

/var/www/icons/php.gif

#查詢已安裝的軟件包信息(只能查詢到通過rpm安裝的軟件包信息)

[root@dayi123 Packages]# rpm -qi tree

Name        :tree                         Relocations:(not relocatable)

Version     :1.5.3                             Vendor: CentOS

Release     :3.el6                         Build Date:Wed 14 Jan 2015 08:21:02 PM

……

#查詢未安裝的軟件包的信息

[root@dayi123 ~]# rpm -qpi/mnt/cdrom/Packages/net-tools-1.60-114.el6.x86_64.rpm

Name        :net-tools                    Relocations: (not relocatable)

Version     :1.60                              Vendor:CentOS

Release     :114.el6                       Build Date:Wed 22 Mar 2017 07:52:14

 ……

#查看vim的配置文件的信息

[root@dayi123 ~]# rpm -qc vim-common--5.el6_8.1.x86_64.rpm

/etc/vimrc

#查詢?yōu)榘惭b的軟件的配置信息

[root@dayi123 cdrom]# rpm -qpc/mnt/cdrom/Packages/php-5.3.3-49.el6.x86_64.rpm

/etc/httpd/conf.d/php.conf

[root@dayi123 cdrom]# rpm -qR tree   #查詢已安裝的軟件包的依賴性

libc.so.6()(64bit) 

libc.so.6(GLIBC_2.2.5)(64bit) 

libc.so.6(GLIBC_2.3)(64bit) 

#查詢?yōu)榘惭b的軟件包的依賴性

[root@dayi123 cdrom]# rpm -qpR/mnt/cdrom/Packages/java-1.5.0-gcj-1.5.0.0

-29.1.el6.x86_64.rpm

……

/usr/bin/gij 

/usr/bin/rebuild-gcj-db 

/usr/bin/rebuild-gcj-db 

/usr/lib64/security/classpath.security 

……

5、rpm包校驗

(1)校驗方法:rpm –V 已安裝的包名

              rpm –V指定RPM包中的文件

(2)校驗的信息說明:

    1)S:文件大小是否改變

    2)M:文件的類型或文件的權限是否改變

    3)5:md5校驗和是否發(fā)生改變(即判斷文件內(nèi)容是否發(fā)生改變)

    4)D:設備中的從代碼是否發(fā)生改變

    5)L:文件路徑是否改變

    6)U:文件的屬主是否發(fā)生改變

    7)G:文件的屬組是否發(fā)生改變

    8)T:文件的修改時間是否發(fā)生改變

[root@dayi123 cdrom]# rpm -V vim-common  #校驗vim包的信息

S.5......  c/etc/vimrc                     #大小和md5值發(fā)生改變

S.5......  c/etc/vimrc

6、rpm包中文件提取

(1)用法:rpm2cpio 包全名 | cpio  -idv .文件絕對路徑

     說明:rpm2cpio:將rpm轉化為cpio格式的命令

          cpio:穿件軟件檔案文件和從檔案文件中提取文件

(2)cpio選項說明:

     -i:還原

     -d:還原時自動新建目錄

     -v:顯示還原過程

(3)刪除/bin/ls命令并進行還原

[root@dayi123 Packages]# rpm -qf /bin/ls   #查看/bin/ls屬于哪個軟件包

coreutils-8.4-43.el6.x86_64

[root@dayi123 Packages]# mv /bin/ls /tmp/  #將/bin/ls移走

[root@dayi123 Packages]# ls              #ls命令不能正常使用

-bash: ls: command not found [root@dayi123 ~]# rpm2cpio/mnt/cdrom/Packages/coreutils

-8.4-46.el6.x86_64.rpm | cpio -idv ./bin/ls  #提取ls命令到當前的/bin/ls目錄下

./bin/ls

25240 blocks

[root@dayi123 ~]# cp ./bin/ls /bin/   #將當前目錄ls命令復制到/bin/ls下

[root@dayi123 ~]# ll               #ls命令可以正常使用

total 116

-rw-r--r--. 1 root root 3944 Apr  2 22:12 1.txt.Z

-rw-------. 1 root root 1057 Mar 30 16:07 anaconda-ks.cfg

drwxr-xr-x. 2 root root 4096 Apr 17 22:16 bin

7、rpm包中文件提取

(1)數(shù)據(jù)庫目錄:/var/lib/rpm

(2)數(shù)據(jù)庫初始化:

rpm{--initdb|--rebuilddb}:如果事先不存在數(shù)據(jù)庫,則新建之,否則,不執(zhí)行任何操作。

rebuilddb:重建已安裝的包頭的數(shù)據(jù)庫索引目錄

三、YUM

1、yum概述

(1)作用:

1)可解決軟件包相關依賴性,可在多個庫之間定位軟件包

2)存儲了眾多rpm包,以及包的相關的元數(shù)據(jù)文件(放置于特定目錄repodata下)

(2)yum支持的文件服務器:ftp://,http://,file://

2、yum配置文件

(1)yum配置文件:

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

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

(2)yum配置文件中可用的變量:

$releasever:當前OS的發(fā)行版的主版本號

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

$basearch:基礎平臺;i386, x86_64

$YUM0-$YUM9:自定義變量

(3)自建yum配置文件:

需要將/etc/yum.repos.d/下所有文件注釋或刪除,自己新建”*.repo”yum配置文件,配置及說明如下

[centos7]         #進行rpm包數(shù)字驗證

name=CentOS-$releasever – Plus    #容器的名稱說明

baseurl=http://172.18.0.1/cobbler/ks_mirror/$releasever/  #配置yum源地址

            http://mirrors.aliyun.com/repo/     #可以指定多個yum源地址

gpgcheck=0       #是否對軟件包進行數(shù)字簽名驗證,是0則不驗證,1則需要驗證

#gpgcheck=1時,需要制定公鑰地址

#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

enabled=1        #啟用yum倉庫

 

[epel]            #配置擴展的yum倉庫

baseurl=http://172.18.0.1/fedora-epel/$releasever/$arch/

gpgcheck=0

enabled=1

(4)配置本地光盤yum源 

1)掛載光盤到指定目錄(或不掛載,自動讓光盤掛載到/misc/cd目錄下,centos7下需要安裝”autofs”軟件,在使用光盤文件時自動會將光盤掛載到/misc/cd目錄下)

[root@dayi123 cd]$yum install autofs –y    #centos7安裝autofs軟件

[root@dayi123 cd]$systemctl start autofs   #啟動autofs軟件

[root@dayi123 cd]$systemctl enable autofs  #設置autofs自啟動

Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service

to /usr/lib/systemd/system/autofs.service.

[root@dayi123 cd]$cd /misc/cd      #進入/misc/cd目錄

[root@dayi123 cd]$df -h

Filesystem     Size  Used Avail Use% Mounted on

/dev/sda3       18G  3.8G   14G 22% /

/dev/sda1      497M  118M  379M 24% /boot

tmpfs           98M   36K   98M  1% /run/user/1020

/dev/sr0       7.3G  7.3G     0 100% /misc/cd #當使用光盤是自動掛載到此目錄下 

……

2)配置光盤yum源,

[root@dayi123 yum.repos.d]$cat test.repo       #光盤yum源配置文件

[centosCD]

name=centos7

baseurl=file:///misc/cd

gpgcheck=1

gpgkey=file:////misc/cd/RPM-GPG-KEY-CentOS-7

[root@dayi123 yum.repos.d]$yum repolist       #查看可用yum源

Loaded plugins: fastestmirror, langpacks

Loading mirror speeds from cached hostfile

repo id                       repo name                          status

centosCD                      centos7_cdrom                      9,007

repolist: 9,007

(5)國內(nèi)常用的yum地址:

阿里云:https://mirrors.aliyun.com/centos/$releasever/os/x86_64/S

阿里云(epel):https://mirrors.aliyun.com/epel/$releasever/x86_64

也可以將自己yum注釋掉,使用wget下載國內(nèi)yum源repo文件:

常用yum源repo文件地址:

網(wǎng)易yum源:

修改“vi /etc/yum/pluginconf.d/fastestmirror.conf” and set “enable=0″

cd /etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo wget http://mirrors.163.com/.help/CentOS

-Base-163.repo

yum makecache  //生成緩存

搜狐yum地址:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

阿里yum源:

CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7

wget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

3、用命令生成.repo文件

(1)生成:yum-config-manager --add-repo=http://172.16.0.1/cobbler/ks_mirror/7/

(2)啟用與關閉yum倉庫:

   禁用倉庫:yum-config-manager --disable “倉庫名"

   啟用倉庫:yum-config-manager --enable “倉庫名”

   備注:如果yum-config-manager命令不能使用,則需要安裝yum-utils包,即:yum –y install yum-utils

[root@dayi123 ~]# yum-config-manager--add-repo=http://172.16.0.1/cobbler/ks_mirror/7/

Loaded plugins: fastestmirror     #生成yum源

adding repo from: http://172.16.0.1/cobbler/ks_mirror/7/

[172.16.0.1_cobbler_ks_mirror_7_]

name=added from: http://172.16.0.1/cobbler/ks_mirror/7/

baseurl=http://172.16.0.1/cobbler/ks_mirror/7/

enabled=1

[root@dayi123 ~]# yum-config-manager --disable centos7 #關閉名名稱為centos的源

Loaded plugins: fastestmirror

repo:centos7 ============================================

[centos7]

……

[root@dayi123 ~]# yum repolist all       #查看所有的yum源列表             

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

repo id        repo name                                             status

172.16.0.1_cobbler_ks_mirror_7_   added from: http://172.16.0.1/cobbler/ks_mirror/7

/    enabled:  9,007    #剛生成的yum源

centos7/7       centos7                                        disabled

!epel/7       centosepel                                      enabled: 11,349

repolist: 20,356

4、yum命令:

(1)yum命令用法:

yum [options] [command] [package ...]

(2)常用的yum命令:

1)顯示倉庫列表:yum repolist [all|enabled|disabled]

[root@dayi123 ~]# yum repolist   #只顯示可用的yum倉庫列表

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

repo id               repo name                                     status

172.16.0.1_cobbler_ks_mirror_7_ added from:http://172.16.0.1/cobbler/ks_mirr  9,007

!epel/7                centosepel                                    11,349

repolist: 20,356

2)顯示程序包:

yumlist

yumlist [all | glob_exp1] [glob_exp2] [...]

yumlist {available|installed|updates} [glob_exp1] [...]

3)安裝程序包:

yuminstall package1 [package2] [...]

yumreinstall package1 [package2] [...] (重新安裝)

[root@dayi123 ~]# yum install remove telnet   #同時安裝多個程序包

Loaded plugins: fastestmirror

Resolving Dependencies

--> Running transaction check

……

[root@dayi123 ~]# yum install telnet vim      #重新安裝程序包

Loaded plugins: fastestmirror

……

4)升級程序包:

yumupdate [package1] [package2] [...]

yumdowngrade package1 [package2] [...] (降級)

5)檢查那些程序包可以升級:

yumcheck-update

6)卸載程序包:

yumremove | erase package1 [package2] [...]

(3)yum命令的查看功能:

1)yum info [包名]   查看程序信息

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

yumprovides | whatprovides [feature1]……

3)清理本地緩存(清除的是/var/cache/yum/$basearch/$releasever緩存):

yumclean all

構建緩存:yum makecache

[root@dayi123 ~]# yum clean all    #清理所有的緩存

Loaded plugins: fastestmirror

Cleaning repos: centos7 epel

Cleaning up everything

Cleaning up list of fastest mirrors

[root@dayi123 ~]# ll -dh /var/cache/yum/x86_64/7/  #查看清理后緩存大小

drwxr-xr-x. 9 root root 4.0K Apr 15 13:07/var/cache/yum/x86_64/7/

4)以指定的關鍵字搜索程序包名及命令所在的包

[root@dayi123 yum.repos.d]# yum search ifconfig   #查看ifconfg屬于哪個包

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

……

moreutils.x86_64 : Additional unix utilities

net-tools.x86_64 : Basic networking tools

python-psutil.x86_64 : A process and system utilitiesmodule for Python

5)查看指定包所依賴的capabilities:

[root@dayi123 yum.repos.d]# yum deplist net-tools   #查看net-tools包所依賴的功能

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

package: net-tools.x86_64 2.0-0.17.20131004git.el7

  dependency:/bin/sh

   provider:bash.x86_64 4.2.46-19.el7

  dependency:libc.so.6(GLIBC_2.14)(64bit)

   provider:glibc.x86_64 2.17-105.el7

6)查看yum事務歷史:

yumhistory [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

yumhistory

yumhistory info 6

yumhistory undo 6

[root@dayi123 yum.repos.d]# yum history   #查看yum安裝歷史記錄

Loaded plugins: fastestmirror

ID     | Commandline             | Date and time    | Action(s)      | Altered

-------------------------------------------------------------------------------

    23 | reinstallvim            | 2017-04-15 12:49 |Reinstall      |    1  

    22 | removetelnet            | 2017-04-15 12:48 |Erase          |    1  

21 | -y install yum-utils     | 2017-04-15 12:31 | Install        |   3  

……

 

[root@dayi123 yum.repos.d]# yum history info 23 #查看yum23歷史記錄中安裝信息

Loaded plugins: fastestmirror

Transaction ID : 23

Begin time     :Sat Apr 15 12:49:42 2017

Begin rpmdb    :478:4a514a26dbb81641679e760948d0b5dfb41560ec

End time      :            12:49:43 2017 (1seconds)

#撤銷歷史記錄中第六條操作(即卸載第六條記錄中安裝的軟件)

[root@dayi123 yum.repos.d]# yum history undo 6 

Loaded plugins: fastestmirror

Undoing transaction 6, from Wed Mar 29 11:46:39 2017

    Install nano-2.3.1-10.el7.x86_64@c7-media

[root@dayi123 yum.repos.d]# yum history undo 24   #撤銷剛才操作,即安裝該軟件

Loaded plugins: fastestmirror

Undoing transaction 24, from Sat Apr 15 13:34:03 2017

    Erasenano-2.3.1-10.el7.x86_64 @c7-media

7)yum日志文件:/var/log/yum.log

5、yum包組管理命令

(1)查看組:yum grouplist [hidden] [groupwildcard] [...]

[root@dayi123 yum.repos.d]# yum grouplist    #查看yum組列表

Loaded plugins: fastestmirror

There is no installed groups file.

Maybe run: yum groups mark convert (see man yum)

Loading mirror speeds from cached hostfile

Available Environment Groups:

   Minimal Install

   Compute Node

(2)安裝組包:yum groupinstall group1 [group2] [...]

(3)更新組包:yum groupupdate group1 [group2] [...]

(4)刪除組包:yum groupremove group1 [group2] [...]

(5)查看組信息yum groupinfo group1 [...]

Centos7.2最小化安裝后安裝桌面:

[root@dayi123 yum.repos.d]# history

1047  yummakecache                 #新建緩存

1048  yumgrouplist                   #查看可用的包組

1049  yumgroupinstall "GNOME Desktop" #安裝桌面

#建立鏈接文件,開機自動啟動桌面

1050 ln  -sf/lib/systemd/system/graphical.target /etc/systemd/system/default.target

[root@dayi123 yum.repos.d]# reboot    #重啟系統(tǒng),即可進入桌面

6、yum的命令行選項:

(1)--nogpgcheck:禁止進行gpgcheck,即安裝不進行軟件包的校驗

(2)-y: 自動回答為“yes”,不用輸入“y”確認

(3)-q:靜默模式,安裝時沒有輸出

(4)--disablerepo=repoidglob:臨時禁用此處指定的repo

(5)--enablerepo=repoidglob:臨時啟用此處指定的repo

(7)--noplugins:禁用所有插件

7、搭建yum倉庫

   有些時候,使用網(wǎng)絡yum源或者光盤yum不方便,或者要使用yum安裝自己制作的rpm包,此時,可以自己搭建yum源,將需要的軟件放入yum倉庫中。

(1)安裝前準備工作:

         1)安裝vsftpd軟件(fpt服務端軟件)

CentOS7中:

[root@dayi123 ~]$yum install vsftpd –y    #安裝vsftpd軟件

Loaded plugins: fastestmirror, langpacks

……

[root@dayi123 ~]$systemctl start vsftpd   #啟動vsftpd

[root@dayi123 ~]$systemctl enable vsftpd  #設置vsftpd開機自啟動

CentOS6中:

[root@dayi123 ~]$yum install vsftpd –y

[root@dayi123 ~]$/etc/init.d/vsftpd start

Starting vsftpd for vsftpd:                                [  OK  ]

[root@dayi123 ~]$chkconfig vsftpd on

    2)關閉防火墻(為了能夠訪問防火墻服務,需要在iptables中添加規(guī)則或關閉iptables)

CentOS7中:

[root@dayi123 ~]$systemctl stop firewalld

[root@dayi123 ~]$systemctl disable firewalld

CentOS6中:

[root@dayi123 ~]$/etc/init.d/iptables stop

[root@dayi123 ~]$chkconfig iptables off

    3)安裝完成并關閉防火墻后可通過網(wǎng)頁測試ftp,能正常打開,則表示ftp服務搭建成功(如下圖所示)

Linux 系統(tǒng)下軟件安裝與管理

(2)配置yum源      

    1)配置yum倉庫

    Vsftpd安裝成功之后,會自動在創(chuàng)建目錄/var/ftp/pub目錄用于存放fpt共享文件,我們還需要在此目錄下創(chuàng)建存放rpm包的目錄及repodate文件,然后將需要的包拷貝到y(tǒng)um倉庫中即可

[root@dayi123 ~]$mkdir /var/ftp/pub/CentOS7 –p  #創(chuàng)建存yum倉庫目錄

[root@dayi123 ~]$mkdir /var/ftp/pub/CentOS7/Packages #常見用于存放rpm包的目錄

#拷貝rpm文件到y(tǒng)um倉庫中

[root@dayi123 ~]$cp /mnt/cdrom/java.*   /var/ftp/pub/CentOS7/Packages/      

[root@dayi123 ~]$createrepo /var/ftp/pub/CentOS7/  #生成repodate文件

Spawning worker 0 with 43 pkgs

Workers Finished

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

[root@dayi123 ~]$ll /var/ftp/pub/CentOS7/

total 4

drwxr-xr-x. 2 root root 4096 Apr 19 07:48 repodata

    2)在客戶端配置yum源:

[root@dayi123 ~]$cat /etc/yum.repos.d/test.repo   #客戶端配置文件

[centos7.2]

name=centos7.2

baseurl=ftp://172.16.250.102/pub/CentOS7/

gpgcheck=1

gpgkey=file:////misc/cd/RPM-GPG-KEY-CentOS-7

[root@dayi123 ~]$yum repolist   #查看生成yum源信息

Loaded plugins: fastestmirror, langpacks

Repository 'app' is missing name in configuration, usingid

Loading mirror speeds from cached hostfile

repo id                         repo name                        status

centos7.2                       centos7.2                        43

repolist: 43

四、編譯安裝軟件(以安裝httpd服務為例)

1、編譯安裝前準備工作:

(1)安裝gcc、及Development and Creative Workstation(cnetos6為Development tools)等編譯環(huán)境

(2)去相應官方網(wǎng)站下載源碼包到指定目錄并解壓。

[root@dayi123 Package]$cd /data/Package

[root@dayi123 Package]$ wget http://apache.fayea.com//httpd/httpd-2.2.32.tar.bz2

[root@dayi123 Package]$tar -xvf httpd-2.2.32.tar.bz2

[root@dayi123 Package]$cd httpd-2.2.32

[root@dayi123 httpd-2.2.32]$ls

ABOUT_APACHE    CMakeLists.txt  INSTALL         NWGNUmakefile

acinclude.m4    config.layout  InstallBin.dsp  os

Apache-apr2.dsw configure       LAYOUT          README

Apache.dsw      configure.in    libhttpd.dep    READMENaNake

apache_probes.d docs            libhttpd.dsp    README.platforms

ap.d            emacs-style     libhttpd.mak    ROADMAP

build           httpd.dep       LICENSE         server

BuildAll.dsp    httpd.dsp       Makefile.in     srclib

BuildBin.dsp    httpd.mak       Makefile.win    support

buildconf       httpd.spec      modules         test

CHANGES         include         NOTICE          VERSIONING

:在編譯安裝前需要查看INSTALL和README文件,里面有安裝信息

2、編譯安裝

(1)在軟件解壓目錄下執(zhí)行:./configure

   執(zhí)行./configure時有很多選項,可通過./configure –help查看,常用的選項有:

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

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

    System types:支持交叉編譯

執(zhí)行./configure的作用:

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

    2)檢查依賴到的外部環(huán)境,如依賴的軟件包

[root@dayi123 httpd-2.2.32]$./configure –help   #查看選項及幫助信息

`configure' configures this package to adapt to manykinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...),specify them as

VAR=VALUE.  Seebelow for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:

  -h, --help              display this help and exit

      --help=short        display options specific to thispackage

     --help=recursive    display theshort help of all the included packages

  -V,--version           display versioninformation and exit

  -q, --quiet,--silent   do not print `checking ...'messages

#執(zhí)行./configure

[root@dayi123 httpd-2.2.32]$./configure  --prefix=/data/httpd --sysconfdir=/etc/httpd

checking for chosen layout... Apache

checking for working mkdir -p... yes

……

注:在執(zhí)行的過程中,某些依賴包沒有安裝會報錯,需要通過yum安裝后再執(zhí)行./configure

checking for APR... no

configure: error: APR not found.  Please read the documentation.

#提示沒有ARP

[root@dayi123 httpd-2.2.32]$yum search apr 

#可通過yum查看apr屬于哪個包,一般為提示的信息-devel包

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

apr-devel.i686 : APR library development kit

apr-devel.x86_64 : APR library development kit

……

[root@dayi123 httpd-2.2.32]$yum install apr-util-devel –y  #安裝apr-util-devel包

#安裝完成后繼續(xù)

[root@dayi123 httpd-2.2.32]$./configure  --prefix=/data/httpd --sysconfdir=/etc/httpd

(2)執(zhí)行make

   作用:根據(jù)makefile文件,構建應用程序

(3)執(zhí)行make install

   作用:復制文件到相應的路勁

[root@dayi123 httpd-2.2.32]$make install      #執(zhí)行make install

Making install in srclib

make[1]: Entering directory`/data/Package/httpd-2.2.32/srclib'

Making install in pcre

make[2]: Entering directory`/data/Package/httpd-2.2.32/srclib/pcre'

#執(zhí)行make install完成后會在指定的目錄生成相應的文件

[root@dayi123 httpd-2.2.32]$ls /data/httpd/ /etc/httpd/  

/data/httpd/:

bin  build  cgi-bin error  htdocs  icons include  logs  man manual  modules

 

/etc/httpd/:

extra  httpd.conf  magic mime.types  original

3、安裝編譯完成后的操作

(1)二進制程序目錄導入至PATH環(huán)境變量中:

   編輯文件/etc/profile.d/NAME.sh加入exportPATH=/PATH/TO/BIN:$PATH

[root@dayi123 ~]$cat /etc/profile.d/httpd.sh    #在PATH變量中增加httpd啟動路徑

export PATH=$PATH:/data/httpd/bin/       

[root@dayi123 ~]$. /etc/profile.d/httpd.sh     #使配置生效

[root@dayi123 ~]$apachectl start            #啟動httpd服務

(2)導入庫文件路徑

   編輯/etc/ld.so.conf.d/NAME.conf,添加新的庫文件所在目錄至此文件中

   讓系統(tǒng)重新生成緩存:ldconfig[-v]

(3)導入幫助手冊

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

當前名稱:Linux系統(tǒng)下軟件安裝與管理
文章路徑:http://muchs.cn/article16/isjhgg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google服務器托管、域名注冊、面包屑導航、小程序開發(fā)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營