Liunx-07软件包的安装与管理

Linux应用程序基础

Linux应用程序与命令的关系

文件位置

系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中

主要用途

系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务,例如网页浏览器

适用环境

系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面中运行

运行格式

系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式

典型应用程序的目录结构

文件类型保存目录
普通执行程序文件/usr/bin
服务器执行程序文件和管理程序文件/usr/sbin
应用程序配置文件/etc
日志文件/var/log
应用程序文档文件/usr/share/doc
应用程序手册页文件/usr/share/man

Linux应用程序组成软件包管理概述

  • 在Linux系统中,用户可以直接编译软件的源代码来安装软件,也可以使用软件包管理器来安装或管理软件,它与直接从源代码安装相比,软件包管理有着下面的优点:
    • 易于更新已安装的软件包;
    • 易于保护配置文件;
    • 易于跟踪已安装文件
  • RHEL7使用的软件包管理器一般有两个:
    • 1、RPM包管理器;
    • 2、YUM包管理器。

软件包的封装类型

封装类型说明
rpm软件包扩展名为“.rpm”
deb软件包扩展名为“.deb”
源代码软件包一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码
提供安装程序的软件包在压缩包内提供install.sh、setup等安装程序 或以“.bin”格式的单个执行文件提供
绿色免安装的软件包在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用

RPM包的管理

rpm包管理器的概述

  • RPM全称是Red Hat Package Manager(Red Hat包管理器)。
  • 在Linux操作系统中,软件包的安装其实是文件的拷贝,即把软件所用的各个文件拷贝到特定目录。当然RPM安装软件包,也不例外。但RPM更“先进”一些,因为它在安装前,还会执行检查软件包的依赖(Dependency)、检查软件包的冲突(Conflicts)。最后才将软件包里面的相关文件解出并存放到相应位置。
  • rpm数据库:/var/lib/rpm

rpm软件的命名

  • 在Redhat Linux中,其rpm包的命名规则为:
  • 软件名-版本号-释出号.体系号.rpm
    例: zsh-4.2.6-1.i386.rpm
    zsh为软件名;
    4.2.6为版本号 (4为主版本号、2为次版本号、6为修订版本号) ;
    1为释出号(发布号);
    rpm为扩展名

rpm包的安装

  • 通过RPM来安装软件包的指令与语法如下:
    • rpm <选项> <软件包名>
  • 安装选项
    • -i 安装一个以前从未安装过的软件包。
    • 例如:rpm –i zsh-4.2.6-1.i386.rpm
  • 其它配用选项
    • -v 将安装过程打印在屏幕上;
    • -vv: 更详细的过程
    • -h 以hash字符“#”显示安装进度条;
    • –nodeps: 忽略依赖关系;
    • –replacepkgs: 重新安装,替换原有安装;
    • –force: 强行安装,可以实现重装或降级;
[root@localhost ~]# rpm -ivh lynx-2.8.5-28.1.i386.rpm
warning: lynx-2.8.5-28.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...    ########################################### [100%]
   1:lynx          ########################################### [100%]

rpm包的卸载

  • 通过RPM来卸载软件包的指令与语法如下:
    • rpm <选项> <软件名>
  • 卸载选项
    • -e 卸载一个已经安装过的软件包。
    • 例如:rpm –e zsh
  • 注意
    • rpm对一个未安装的软件包进行操作,参数为软件包名。
    • rpm对一个已经安装过的软件包进行操作,参数为软件名。
[root@localhost ~]# rpm -q lynx
lynx-2.8.5-28.1
[root@localhost ~]# rpm -e lynx
[root@localhost ~]# rpm -q lynx
package lynx is not installed

rpm包的升级

  • 通过RPM来升级软件包的指令与语法如下:
    • rpm <选项> <软件包名>
  • 升级选项
    • -U 对一个已经安装的旧版本软件包进行升级(如果以前没有安装过此包则安装它)。
    • -F 对一个已经安装的旧版本软件包进行升级。
  • 其它配用选项
    • –force 强制执行,它与-Uvh组合使用可重新安装某个已经安装的软件包当中丢失的文件。
    • –nodeps:安装、升级或卸载软件时,忽略依赖关系
[root@localhost ~]# rpm -i wget-1.10.2-3.2.1.i386.rpm
[root@localhost ~]# rpm -q  wget
wget-1.10.2-3.2.1
[root@mail ~]# rpm -Uvh /media/cdrom/wget-1.10.2-7.el5.i386.rpm
warning: /media/cdrom/wget-1.10.2-7.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
   1:wget       ########################################### [100%]
[root@localhost ~]# rpm -q  wget
wget-1.10.2-7.el5
  • 安装有依赖关系的多个软件时
    • 被依赖的软件包需要先安装
    • 同时指定多个.rpm包文件进行安装
  • 卸载有依赖关系的多个软件时
    • 依赖其他程序的软件包需要先卸载
    • 同时指定多个软件名进行卸载
  • 忽略依赖关系
    • 结合“–nodeps”选项,但可能导致软件异常

rpm的查询

  • 通过RPM来查询的指令与语法如下:
    • rpm <选项> <软件名|软件包名|文件名>
  • 查询选项
    • –q 软件名:查询某一个RPM包是否已安装
    • –qi 软件名:查询某一个RPM包的详细信息
    • –ql 软件名:列出某RPM包中所包含的文件
    • –qf 文件名:查询某文件属于哪一个RPM包
    • –qa :列出当前系统所有已安装的包
    • –qip 软件包:列出未安装RPM包的详细信息
    • –qlp 软件包:列出未安装RPM包中的文件
    • -q --scripts 软件包: 查询指定包中包含的脚本
#查询是否已安装有bash软件包
[root@localhost ~]# rpm -q bash
bash-3.1-16.1
[root@localhost ~]# rpm -qa | grep bash
bash-3.1-16.1

#查询vim是由哪个软件包安装的
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.0.109-3

#查询dhcp软件包安装的文件列表
[root@localhost ~]# rpm -ql dhcp
/etc/dhcpd.conf
/etc/rc.d/init.d/dhcpd
……

#查询lynx软件安装包的摘要信息
[root@localhost ~]# rpm -qpi lynx-2.8.5-28.1.i386.rpm
warning: lynx-2.8.5-28.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Name        : lynx         Relocations: (not relocatable)
Version     : 2.8.5          Vendor: Red Hat, Inc.
Release     : 28.1          Build Date: 2006年07月13日 星期四 14时10分20秒
……

#查询lynx安装包中的文件列表
[root@localhost Server]# rpm -qpl lynx-2.8.5-28.1.i386.rpm
/etc/lynx-site.cfg
/etc/lynx.cfg
……

rpm包的检查

  • 从互联网上下载的软件包,我们应该对下载的软件包进行检查。
  • 通过RPM来检查软件包的指令与语法如下:
    • rpm <选项> <软件包名>
  • 检查选项
    • -K 检查RPM包的GPG签名
  • 注意
    • 在检查之前应该先导入红帽官方的GPG KEY文件。
    • GPG KEY文件在官方的安装光盘上与系统中都有。
      • rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

rpm的校验

  • 当一个软件包被安装后,用户可以对其进行检验,以检测软件是否被用户修改过。
  • 通过RPM来校验软件包的指令与语法如下:
    • rpm <选项> <软件名>
  • 校验选项
    • -V 校验软件;-Va 校验所有软件
  • 校验出被修改地方
    • S 文件大小;M 文件权限与类型;5 MD5求和;U 文件的所属用户;G 文件的所属组;T 更改时间

rpm的重建数据库

  • rpm
    • –rebuilddb: 重建数据库,一定会重新建立;
    • –initdb:初始化数据库,没有才建立,有就不用建立;
  • rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件

普通软件源码包的编译安装方法

​ Linux 上面的套件几乎都是经过 GPL 的授权,所以每个套件几乎均提供原始程序代码,并且您可以自行修改该程序代码,以符合您个人的需求。

​ 一个文件能不能被执行看的是有没有可执行的那个权限( 具有 x 权限 ),不过,Linux 系统上真正认识的可执行文件其实是二进制档案( binary file ) 。

​ 使用文书处理器(例如vi) 来进行程序的撰写,写完的程序就是所谓的原始程序代码,这个程序代码档案其实就是一般的纯文字文件( text file )。在完成这个原始码档案的编写之后,再来就是要将这个档案『编译』成为操作系统看的懂得 binary file !而要编译自然就需要『编译器』来动作,经过编译器的编译之后,就会产生一支可以执行的 binary file 。

源程序编译执行简单方法–make

  • make 的功能是可以简化编译过程里面所下达的指
    令,同时还具有很多很方便的功能!make 会主动的去判断每个目标文件相关的原始码档案,并直接予以编译,最后再直接进行连结的动作!

例子

Tarball 安装的基本步骤:

1、将 tarball 档案在 /usr/local 目录下解压缩;
2、进入新建立的目录底下,去查阅 INSTALL 与 README 等相 
     关档案内容;
3、根据 INSTALL/README 的内容察看并安装好一些相依的套 
     件( 非必要 )4、执行./configure 以自动侦测程序( configure 或 config )侦测
     作业环境,并建立 Makefile 这个档案;
5、执行make,以 make 这个程序并使用该目录下的 Makefile 做
     为他的参数设定档,来进行 make ( 编译或其它 )的动作; 
6、执行make install以 make 这个程序,并以 Makefile 这个参
     数设定档,依据 install 这个标的( target )的指定来安装到正 
     确的路径!

编译与安装

编译前配置
./configure 配置参数...
编译,将高级语言转换长二进制代码
make
安装应用程序二进制代码
make install

软件安装步骤

源代码安装
指将源代码文件在本机编译成二进制文件的安装过程
通常所具备的几个步骤为:

1 下载

​ 以源代码方式发布的软件包通常是以.tar.gz、.tar.bz2 或 .tgz扩展名结尾的单个压缩文档

2 解包
tar -zxvf		==>			*.tar.gz 、*.tgz
tar -jxvf		==>			*.tar.bz2
unzip           ==>         *.zip
3 阅读必要的文档

​ 解包源代码之后,可以进入解包的目录并检查其中的内容。最好是能找到所有与安装有关的文档。通常,这一信息可以在位于主源代码目录的 README 或 INSTALL 文件中找到。
​ 另外,可以查找 README.platform 和 INSTALL.platform 文件,这里的 platform 通常是特定操作系统或计算机架构的名称。

4 配置
./configure
eg:
./configure  --prefix=/usr/local/mysql

​ 配置过程完成后,配置脚本将它所有的配置数据存储在一个名为 config.cache 的文件中。如果在更新系统配置后需要再次运行 ./configure,请确保您先执行 $rm config.cache 命令;否则配置脚本将只使用旧的设置而不重新检查系统。

5 编译并安装
make			//编译
make check		//检查
make install	//安装,需要root权限
make clean      //卸载

标准源码包安装

一、什么是标准的源码包呢?
   就是解压后里面有两个文件:README 和Makefile
二、安装源码包
1 先解压 tar -jxvf  mplayer-1.0.20060415.tar.bz2
2 然后进入该目录 执行:
     ./configure --prefix=/usr/local/程序名
3 编译: make
4 安装:  make install
5 进入:/usr/local/程序名 就可以执行该程序

非标准源码包编译与安装

一:如果后缀是.bin则表示是二进制文件,直接可以执行,如果没有执行权限,这个时候就需要给一个权限chmod -u+x 包名。

二:为了执行方便 我们给程序建立一个快接方式:ln -s 程序的执行路径 /root/.gnome-desktop/

三:如果其他非标准的软件包,则需要根据安装说明来安装。

二进制包

  • 在LInux系统中,扩展名为.bin的文件是二进制文件,它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包。
  • 安装很简单,将下载下来的*.bin文件加上可执行的权限,然后输入其路径便可以执行安装。
    • 下面以流媒体播放器RealONE for Linux为例来安装二进制软件包。
      • 下载二进制包:http://www.real.com/linux
      • chmod 755 RealPlayer11GOLD.bin
      • ./RealPlayer11GOLD.bin

使用YUM来管理软件包

YUM概述

  • yum是Yellow dog Updater Modified的简称
  • yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以通过http或ftp共享出来,也可以是本地软件池。
  • 在软件仓库中包括了所有RPM包的头信息(header)描述,比如依赖性等。
  • 客户端在第一次安装的时候就会去下载header文件并加以分析,这样才能自动地从服务端下载相关软件,并一条龙地完成安装任务。

YUM客户端配置

  • yum仓库中的元数据文件:
    • primary.xml.gz
      • 所有RPM包的列表;
      • 依赖关系;
      • 每个RPM安装生成的文件列表;
    • filelists.xml.gz
      • 当前仓库中所有RPM包的所有文件列表;
    • other.xml.gz
      • 额外信息,RPM包的修改日志;
    • comps*.xml
      • RPM包分组信息

repomd.xml
记录的是上面三个文件的时间戳和校验和;

  • yum客户端的配置文件放在本地的/etc/yum.repos.d/*.repo
  • 配置文件的格式为
[仓库名1]
	name=仓库描述
	baseurl=仓库位置
	enabled=0/1(0:不激活配置;1:激活此配置)
	gpgcheck=0/1(0:安装前不对RPM包检测1:返之进行检测)
	gpgkey=GPG文件的位置
[BASE]
	name=Red Hat Enterprise Linux Server
	baseurl=ftp://192.168.0.254/pub/rhel6/dvd
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

制作本地yum源

首先确保自己的系统上安装了一下软件包

 yum-3.2.19-18.el5
 yum-security-1.1.16-13.el5
 yum-updatesd-0.9-2.el5
 yum-rhn-plugin-0.5.3-30.el5
 yum-metadata-parser-1.1.2-2.el5
 
安装后会在在/etc/yum.repos.d/下生成一个rhel-debuginfo.repo文件
然后使用光盘或镜像
挂载到系统中
#mkdir /mnt/cdrom
#mount /dev/cdrom  /mnt/cdrom
然后编辑一个配置文件
#vim /etc/yum.repos.d/local.repo添加一下内容
[base]
 name=server
 baseurl=file:///mnt/cdrom/Server
 enabled=1 
 gpgcheck=0

YUM安装

  • 通过yum来安装软件
    • 语法:yum  <选项> <软件名|组名>
  • 安装选项
    • install <软件名> 安装指定的安装包package
    • localinstall <软件包> 本地安装软件包
    • groupinstall <组名> 组安装
    • -y 自动回答为yes
  • 补充说明
    • install是客户端从远程仓库中下载软件并安装
    • localinstall 是安装一个本地已经下载来的的软件包。
    • groupinstall 如果仓库为软件包分了组,则可以通过安装此组来完成安装这个组里面的所有软件包

YUM升级

  • 通过yum来升级软件
    • 语法:yum  <选项> [软件包|软件名|组名]
  • 升级选项
    • update 更新全部可以更新的软件包
    • update <软件名> 更新指定程序包package
    • check-update 检查系统中可以被升级的软件包。
    • groupupdate <组名> 升级组group1 里面的软件包
    • update_to 升级为指定版本

YUM卸载

  • 通过yum来卸载软件
    • 语法:yum  <选项> <软件名|组名>
  • 卸载选项
    • remove <软件名> : 卸载软件包package1
    • erase  <软件名> : 卸载软件包package1
    • groupremove <组名> :卸载组group1里面所包括的软件包。YUM查询

YUM查询

  • 语法:yum  <选项> [软件包|软件名|组名]

  • 查询选项

    • info <软件名> :显示安装包信息
    • list :显示所有已经安装和仓库中可以安装的程序包
      • all
      • available:可用的,仓库中有但尚未安装的
      • installed: 已经安装的
      • updates: 可用的升级
    • list <软件名> :显示指定软件包安装情况
    • grouplist :显示仓库中有哪些组
    • deplist <软件名> :查看程序package1依赖情况
    • groupinfo <组名> :显示程序组group1信息
    • search <关键字>:查找软件包
    • provides| whatprovides: 查看指定的文件或特性是由哪个包安装生成的;

YUM清理缓存

  • clean: 清理缓存
    • [ packages | headers | metadata | dbcache | all ]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值