linux系统管理-第四章Linux软件安装管理

                                       linux系统管理

                             第四章Linux软件安装管理

概述

在Linux平台下,软件包的类型可以划分为两类:源码包、二进制包。

源码包:即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包)。

二进制包:如 Red Hat发行版的.rpm包,Debian发行版的.deb包。

源码包安装的主要步骤

linux系统管理-第四章Linux软件安装管理_第1张图片

4.1 RPM软件管理

RPM包也叫系统默认包,二进制包。RPM是 Redhat Package Manager,是有红帽公司开发的套件管理程序。

linux系统管理-第四章Linux软件安装管理_第2张图片

 

4.1.1 RPM包命名规则

RPM在系统光盘

linux系统管理-第四章Linux软件安装管理_第3张图片

libmicrohttpd-0.9.33-2.el7.i686.rpm

libmicrohttpd-0.9.33-2.el7.x86_64.rpm

1、i386、i586、i686与Noarch
i386—几乎所有的X86平台,不论是旧的pentum或者是新的pentum-IV与K7系统CPU,都可以正常工作,i指得是Intel兼容的CPU,至于386就是CPU的等级。
i586—就是586等级的计算机,包括pentum第一代MMX CPU,AMD的K5,K6系统CPU(socket7插脚)等CPU都是这个等级。
i686—pentum 2 以后的Intel系统CPU及K7以后等级的CPU都属于这个686等级。
Noarch—代表跟硬件体系结构无关。不管是 x86、PowerPC,Sparc 或者 Alpha 系统。


x86:   一般意义上的32位Intel处理器
x86_64:   一般意义上的64位Intel处理器

 

4.1.2 RPM依赖性

树形依赖a->b->c

环形以来a->b->c->a

模块依赖(库文件依赖),查询网站:www.rpmfind.net

 

库文件依赖(依赖个文件)

[root@Redhat7 Packages]# rpm -ivh mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm

警告:mysql-connector-odbc-5.2.5-6.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

错误:依赖检测失败:

        libodbc.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要

        libodbcinst.so.2()(64bit) 被 mysql-connector-odbc-5.2.5-6.el7.x86_64 需要

 

[root@Redhat7 Packages]# rpm -ivh libodbc.so.2(没有这个包)

通过www.rpmfind.net查询

linux系统管理-第四章Linux软件安装管理_第4张图片

 

4.1.3 RPM软件安装

 

linux系统管理-第四章Linux软件安装管理_第5张图片

   包全名:安装,升级,包名:查询,卸载。

   rpm –ivh

   i install 安装

   v verbose 显示详细信息

   h hash 显示进度

   --nodeps 不检测依赖性(谨慎使用)

 

[root@Redhat7 Packages]# rpm -ivh http

httpcomponents-client-4.2.5-5.el7_0.noarch.rpm

httpcomponents-core-4.2.4-6.el7.noarch.rpm

httpd-2.4.6-40.el7.x86_64.rpm (主包)

httpd-devel-2.4.6-40.el7.x86_64.rpm

httpd-manual-2.4.6-40.el7.noarch.rpm

httpd-tools-2.4.6-40.el7.x86_64.rpm

 

错误的依赖性

[root@Redhat7 Packages]# rpm -ivh httpd-2.4.6-40.el7.x86_64.rpm

警告:httpd-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

错误:依赖检测失败:

        /etc/mime.types 被 httpd-2.4.6-40.el7.x86_64 需要

        httpd-tools = 2.4.6-40.el7 被 httpd-2.4.6-40.el7.x86_64 需要

        libapr-1.so.0()(64bit) 被 httpd-2.4.6-40.el7.x86_64 需要

        libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-40.el7.x86_64 需要

 

[root@Redhat7 Packages]# rpm -ivh httpd-tools-2.4.6-40.el7.x86_64.rpm

警告:httpd-tools-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

错误:依赖检测失败:

        libapr-1.so.0()(64bit) 被 httpd-tools-2.4.6-40.el7.x86_64 需要(依赖库文件)

        libaprutil-1.so.0()(64bit) 被 httpd-tools-2.4.6-40.el7.x86_64 需要 (依赖库文件)通过网站查找

 

[root@Redhat7 Packages]# rpm -ivh apr-1.4.8-3.el7.x86_64.rpm

警告:apr-1.4.8-3.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:apr-1.4.8-3.el7                  ################################# [100%]

[root@Redhat7 Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm

警告:apr-util-1.5.2-6.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:apr-util-1.5.2-6.el7             ################################# [100%]

 

[root@Redhat7 Packages]# rpm -ivh httpd-tools-2.4.6-40.el7.x86_64.rpm     

警告:httpd-tools-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:httpd-tools-2.4.6-40.el7         ################################# [100%]

 

[root@Redhat7 Packages]# rpm -ivh httpd-2.4.6-40.el7.x86_64.rpm               

警告:httpd-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

错误:依赖检测失败:

        /etc/mime.types 被 httpd-2.4.6-40.el7.x86_64 需要

 

[root@Redhat7 Packages]# rpm -ivh mailcap-2.1.41-2.el7.noarch.rpm

警告:mailcap-2.1.41-2.el7.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:mailcap-2.1.41-2.el7             ################################# [100%]

 

[root@Redhat7 Packages]# rpm -ivh httpd-2.4.6-40.el7.x86_64.rpm  

警告:httpd-2.4.6-40.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:httpd-2.4.6-40.el7               ################################# [100%]

总结使用rpm太不人性化。

 

[root@Redhat7 Packages]# rpm -ivh httpd-

httpd-2.4.6-40.el7.x86_64.rpm (安装完成)     

httpd-manual-2.4.6-40.el7.noarch.rpm(安装完成) 

httpd-devel-2.4.6-40.el7.x86_64.rpm  

httpd-tools-2.4.6-40.el7.x86_64.rpm(安装完成) 

rpm安装就是解决依赖性,无限安装

4.1.4 RPM软件升级与卸载

Rpm  -Uvh 包全名

-U upgrade 升级

rpm –evh 报名

-e (erase) 卸载

v verbose 显示详细信息

    h hash 显示进度

 

--nodeps不检查依赖性

 

[root@Redhat7 Packages]# rpm -evh  httpd-tools

错误:依赖检测失败:

        httpd-tools = 2.4.6-40.el7 被 (已安裝) httpd-2.4.6-40.el7.x86_64 需要

 

[root@Redhat7 Packages]# rpm -evh  httpd-manual                        

准备中...                          ################################# [100%]

正在清理/删除...

   1:httpd-manual-2.4.6-40.el7        ################################# [100%]

强制卸载(谨慎使用)

[root@Redhat7 Packages]# rpm -evh --nodeps  httpd-tools

准备中...                          ################################# [100%]

正在清理/删除...

   1:httpd-tools-2.4.6-40.el7         ################################# [100%]

4.1.5 RPM包查询

rpm –q 包名 查询包是否安装

rpm –qa 查询所有安装的包

rpm –i 查询软件信息

-l:列出软件包中所有的文件列表和软件所安装的目录(list)

-f:查询文件属于那个包

-R:查询软件包依赖的包

 

常用查询

[root@Redhat7 ~]# rpm -q nautilus

nautilus-3.14.3-7.el7.x86_64

比较常用的方式

[root@Redhat7 ~]#  rpm -qia | grep httpd

Name        : httpd

Source RPM  : httpd-2.4.6-40.el7.src.rpm

URL         : http://httpd.apache.org/

 

[root@Redhat7 ~]#  rpm -qa | grep httpd

httpd-2.4.6-40.el7.x86_64

 

查询httpd包安装位置,与软件信息

[root@Redhat7 ~]#  rpm -qilla | grep httpd

/usr/share/setroubleshoot/plugins/httpd_can_sendmail.py

/usr/share/setroubleshoot/plugins/httpd_can_sendmail.pyc

/usr/share/setroubleshoot/plugins/httpd_can_sendmail.pyo

/usr/share/setroubleshoot/plugins/httpd_write_content.py

/usr/share/setroubleshoot/plugins/httpd_write_content.pyc

/usr/share/setroubleshoot/plugins/httpd_write_content.pyo

Name        : httpd

Source RPM  : httpd-2.4.6-40.el7.src.rpm

URL         : http://httpd.apache.org/

/etc/httpd

/etc/httpd/conf

/etc/httpd/conf.d

/etc/httpd/conf.d/README

 

查询文件属于那个包,并且显示软件信息

[root@Redhat7 ~]#  rpm -qif /usr/share/httpd/icons/small/burst.gif

Name        : httpd

Version     : 2.4.6

Release     : 40.el7

Architecture: x86_64

Install Date: 2019年07月30日 星期二 00时08分10秒

Group       : System Environment/Daemons

Size        : 3876648

License     : ASL 2.0

Signature   : RSA/SHA256, 2015年09月30日 星期三 21时29分50秒, Key ID 199e2f91fd431d51

Source RPM  : httpd-2.4.6-40.el7.src.rpm

Build Date  : 2015年09月17日 星期四 21时08分35秒

Build Host  : x86-024.build.eng.bos.redhat.com

Relocations : (not relocatable)

Packager    : Red Hat, Inc.

Vendor      : Red Hat, Inc.

URL         : http://httpd.apache.org/

Summary     : Apache HTTP Server

Description :

The Apache HTTP Server is a powerful, efficient, and extensibl

查询httpd依赖的包

[root@Redhat7 ~]#  rpm -qR httpd

/etc/mime.types

system-logos >= 7.92.1-1

httpd-tools = 2.4.6-40.el7

4.2 yum完美解决rpm依赖性

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum是什么yum = Yellow dog Updater, Modified。
主要功能是更方便的添加/删除/更新RPM包.。
它能自动解决包的倚赖性问题.。
它能便于管理大量系统的更新问题。

yum的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。

[command]为所要进行的操作,[package ...]是操作的对象。

 

4.2.1 设置本地yum源

linux系统管理-第四章Linux软件安装管理_第6张图片

【设置本地镜像作为yum源】

1、mkdir /mnt/cdrom

2   mount /dev/cdrom /mnt/cdrom  #挂着镜像,光盘

3  mkdir  /redhatiso

4  cp -Rf /mnt/cdrom/* /redhatiso   #将光盘内的内容copy到某个路径下

5  vi /etc/yum.repos.d/rhel-debuginfo.repo  #编辑repo文件

添加一下内容:

[iso7.2]

name=iso7.2

baseurl=file:///redhatiso

enable=1

gpgcheck=0

4.2.2 yum常用命令

1.列出所有可更新的软件清单命令:yum check-update

2.更新所有软件命令:yum update

3.仅安装指定的软件命令:yum install

4.仅更新指定的软件命令:yum update

5.列出所有可安裝的软件清单命令:yum list

6.删除软件包命令:yum remove

7.查找软件包 命令:yum search

8.清除缓存命令:

yum clean packages: 清除缓存目录下的软件包

yum clean headers: 清除缓存目录下的 headers

yum clean oldheaders: 清除缓存目录下旧的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

 

4.2.3 yum查询和显示

Info 显示信息

[root@Redhat7 ~]# yum info httpd.x86_64

已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

已安装的软件包

名称    :httpd

架构    :x86_64

版本    :2.4.6

发布    :40.el7

大小    :3.7 M

源    :installed

简介    : Apache HTTP Server

网址    :http://httpd.apache.org/

协议    : ASL 2.0

描述    : The Apache HTTP Server is a powerful, efficient, and extensible

         : web server.

List 所有已安装和可以安装的程序包

yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1

查找http开头的文件包

[root@Redhat7 ~]# yum list | grep http

search搜索匹配特定字符的rpm包

search搜索服务器上所有和关键字相关的包

# yum search perl            //在包名称、包描述等中搜索

 

4.2.4 yum安装rpm

Yum –y install 包名

- install 安装

-y 自动回复yes

自动安装 名字包含pam的包

[root@Redhat7 ~]# yum install *pam* -y

4.2.5 yum更新update rpm包

yum update 全部更新
yum update package1 更新指定程序包package1

 

[root@Redhat7 ~]# yum update gcc –y

4.2.6 yum remove删除包

在服务器中尽量不卸载,稳定第一

yum remove pam-devel

yum remove pam-devel –y 自动删除

 

 

4.3 linux 源代码软件管理

linux系统管理-第四章Linux软件安装管理_第7张图片

 

4.3.1 源码包与RPM包的区别

linux系统管理-第四章Linux软件安装管理_第8张图片

 

 

 

4.3.2 源码包的安装

 

linux系统管理-第四章Linux软件安装管理_第9张图片

linux系统管理-第四章Linux软件安装管理_第10张图片

 

如何确定安装出错

安装过程停止,并出现error,waring,或no的提示

1 安装源码包示例-确定安装位置

[root@Redhat7 en-software]# mkdir /en-software

[root@Redhat7 en-software]# tar -zvxf rlwrap-0.37.tar.gz

2进入解压缩目录

进入解压缩目录

[root@Redhat7 en-software]# cd rlwrap-0.37/

3 ./config 软件配置与检查

它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生相应的makefile文件,Makefile 规定了用什么编译器、编译参数等信息。从而可以使你的源代码能在不同的操作系统平台上被编译出来。比如它会检测你是不是有CC或GCC。

[root@Redhat7 rlwrap-0.37]# ./configure –prefix=/en-software/ rlwrap

 

 

configure: error:

You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build

this program!

 

安装readline

[root@Redhat7 rlwrap-0.37]# yum install *readline* -y

 

成功

configure: creating ./config.status

config.status: creating Makefile

config.status: creating filters/Makefile

config.status: creating doc/Makefile

config.status: creating src/Makefile

config.status: creating doc/rlwrap.man

config.status: creating config.h

config.status: executing depfiles commands

 

Now do:

    make (or gmake)  to build rlwrap

    make check       for instructions how to test it

    make install     to install it

 

也可以指定安装位置(一定要指定安装位置)

 

./configure –prefix=/en-software/ rlwrap

4 make

执行make 就是将源码编译成可以执行的文件,但是并没有安装。

 

5 make install

最后一步安装文件

安装成功

[root@Redhat7 en-software]# rlwrap

 

安装的说明文档在解压缩目录中大写的INSTALL

 

[root@Redhat7 rlwrap-0.37]# cat  INSTALL

PREREQUISITES

 

To build rlwrap, you'll need an ANSI C compiler (gcc will certainly

do) and GNU readline 4.2 or later. rlwrap should compile on most

unices and unix-like environments like linux, the BSDs, OS/X, solaris,

HP/UX, QNX, AIX and cygwin (special thanks to PolarHome for their

"dinosaur zoo" of ageing Unix systems!)

 

INSTALLATION

 

./configure

make

make install

4.3.3 源码包卸载

make unistall:卸载已经安装的程序。
make clean:删除由make命令产生的文件

最后一步删除源码包的文件夹

4.4 SH脚本安装

linux系统管理-第四章Linux软件安装管理_第11张图片

 

你可能感兴趣的:(LINUX)