Linux系統(tǒng)下軟件安裝與管理-創(chuàng)新互聯(lián)

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

目前成都創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網站建設、域名、虛擬空間、網站托管、服務器租用、企業(yè)網站設計、臨城網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

一、二進制(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)顯示本機已經緩存的所有可用庫文件名及文件路徑映射關系:/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包內的文件、RPM的元數據(如名稱,版本,依賴性,描述等)、安裝或卸載時運行的腳本

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

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

二、RPM包管理

1、包名與包全名:

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

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

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對一個已經存在的文件進行覆蓋安裝

--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)升級內核(Linux支持多內核,不建議升級內核,直接安裝新內核即可):

[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:  #安裝內核時提示需要安裝依賴包

       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   #同時安裝內核和依賴包

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ā)生改變(即判斷文件內容是否發(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)數據庫目錄:/var/lib/rpm

(2)數據庫初始化:

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

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

三、YUM

1、yum概述

(1)作用:

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

2)存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄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包數字驗證

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

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

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

gpgcheck=0      #是否對軟件包進行數字簽名驗證,是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)國內常用的yum地址:

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

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

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

常用yum源repo文件地址:

網易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倉庫

   有些時候,使用網絡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)安裝完成并關閉防火墻后可通過網頁測試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)去相應官方網站下載源碼包到指定目錄并解壓。

[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)通過選項傳遞參數,指定啟用特性、安裝路徑等;執(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

   作用:根據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

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網站欄目:Linux系統(tǒng)下軟件安裝與管理-創(chuàng)新互聯(lián)
文章網址:http://muchs.cn/article10/ddsddo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、建站公司搜索引擎優(yōu)化、移動網站建設定制網站、Google

廣告

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

成都seo排名網站優(yōu)化