Linux 软件管理: 安装 升级 卸载

Linux 软件管理: 安装 升级 卸载

本文以Red Hat 7.0为例,介绍Linux系统下开放源码文件的安装,升级,卸载等管理工作.开放源码文件的安装与升级可以通过以下两种方式来进行:

  1. 直接以源码文件通过编译来安装与升级,即tarball方式安装.
  2. 直接以编译好的可执行文件来安装与升级.即rpm方式安装.

Tarball文件

Tarball文件是一个软件包,扩展名为 *.tar.gz 或者 *.tar.bz2,将它解压缩之后,通常可以得到三种文件:

  1. 源代码文件
  2. 检测程序文件, configure或者config
  3. 软件的简单说明与安装说明, INSTALL和README

安装过程

tarball文件的安装过程相对简单,主要由以下三步组成:
1. 下载与解压tarball文件
2. 构建,包括配置,编译,链接等.
3. 安装

./configure
make clean 
make
make install

卸载过程

 make uninstall

此方法的前提是你的源码文件依然存在,而且Makefile文件中存在uninstall命令.否则只能通过手动的方法删除.如果你是按照上述步骤进行程序安装的话,程序会被安装到系统的相应默认目录中,可以到相应的目录中删除相应的文件即可,缺点是可能造成删除不干净不彻底.可以通过以下方法重新安装一次,然后遍历to_remove,删除系统对应安装位置的文件即可.

./configure --prefix=/tmp/to_remove && make install

升级过程

根据patch文件升级源码文件,必须要有补丁文件patch_file

patch -p num < patch_file

上述命令只会升级源码文件,并不会进行程序的安装,因此之后只要重新编译安装即可

默认目录

在默认情况下,Linux系统安装的软件大多是在 /usr 中的,而用户安装的软件则建议放置在 /usr/local中,用户安装的源码文件建议放在 /usr/local/src 中.
系统软件的相关默认安装路径

/etc/ 配置文件
/usr/lib 函数库文件
/usr/bin 可执行文件
/usr/share/man 说明或者帮助文件

用户软件的相关默认安装路径

/usr/local/etc 配置文件
/usr/local/lib 函数库文件
/usr/local/bin 可执行文件
/usr/share/man 说明或者帮助文件

以上方法的缺点是安装软件的位置是分散的,造成软件的卸载比较难以定位文件源,所以可以选择指定目录安装软件,假设软件安装到/usr/local/test目录中:

/usr/local/test/etc
/usr/local/test/bin
/usr/local/test/lib
/usr/local/test/man

Tarball文件安装的优点: 跨平台可移植.缺点是卸载比较复杂.

Linux包管理机制

distribution软件管理机制使用命令在线升级机制(命令)
RedHat/CentOSRPMrpm,rpmbuildYUM (yum)
Debian/UbuntuDPKGdpkgAPT (apt-get)

RPM

RPM(Red Hat Package Manager)是一种以数据库记录的方式将所需要的软件安装到Linux系统的一种包管理机制.每个rpm包文件(扩展名为 .rpm)都包含一些重要的信息,比方说软件依赖属性.在软件安装之前,rpm会先依照软件里的信息查询Linux主机的依赖属性是否满足,如果满足则安装,否则不安装.在软件安装之后,Linux主机会把该软件的信息记录在数据库中以备查询.

RPM包文件的主要内容是经过编译和打包的可执行文件,与此相反,SRPM(Source RPM)是指它的RPM文件里面包含源代码,即它所提供的软件是没有经过编译的源代码,其扩展名为 .src.rpm.虽然SRPM的内容是源代码,但是它仍然含有该软件所需要的依赖性软件说明以及所有RPM文件所提供的数据,同时,与RPM不同的是,它也提供了参数设置文件.

文件格式扩展名直接安装否文件类型可否修改参数并编译
RPMxxx.rpm可以已编译的可执行文件不可
SRPMxxx.src.rpm不可未编译的源代码可以

rpm数据库:

我们知道rpm包管理机制的软件信息都记录在rpm数据库中,它的每一条记录都是软件的相应信息,rpm数据库位于以下目录

/var/lib/rpm

rpm文件名:

rpm包的文件名如下所示,它包含软件名称,版本号,发布次数,硬件平台和扩展名.srpm包的文件名的rpm类似,除了护展名.

rpm    -   4.11.3   -    35   .   el7.x86_64 .rpm
软件名称 软件的版本信息 发布的次数 适合的硬件平台 扩展名

rpm的默认安装路径

rpm包的默认安装路径和tarball文件是相似的,由此可以看出: 不管采用什么方式,Linux的软件基本安装在相同的位置.

/usr/bin
/usr/lib
/usr/share/doc
/usr/share/man

rpm常用命令

rpm -ivh package-name 安装
rpm -evh package-name 卸载
rpm -Uvh package-name 升级
rpm -q package-name 查询
rpm -qa | grep package-name 查询

SRPM的使用: rpmbuild

命令说明

rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [(1) rpmbuild-options ] SPECFILE…

rpmbuild {-ta|-tb|-tp|-tc|-ti|-tl|-ts} [(1) rpmbuild-options ] TARBALL…

rpmbuild {–rebuild|–recompile} SOURCEPKG…

  1. –rebuild: 进行编译与打包最后生成rpm包,但并不安装
  2. –recompile: 直接编译打包然后安装

SRPM使用的路径

参数说明
/usr/src/redhat/SPECS软件的设置文件,用于说明软件的编译打包安装等
/usr/src/redhat/SOURCES软件的源代码文件
/usr/src/redhat/BUILD编译过程的暂存文件的保存目录
/usr/src/redhat/RPMS保存rpm包的目录
/usr/src/redhat/SRPMS保存srpm包的目录

SRPM的编译命令

rpmbuild -ba *.spec -> 编译同时生成RPM和SRPM文件
rpmbuild -bb *.spec -> 仅编译成RPM文件

设置文件的主要内容*.spec

参数说明
Summary软件的主要说明
Name软件的名称
Version软件的版本号
Release软件的打包次数
License软件的授权模式
Group软件的开发团队
Url源代码的主要官方网站
Source软件的来源
Patch软件的补丁文件
BuildRoot编译过程存放中间文件临时目录
ExclusiveArch软件适合的硬件平台
Requires软件的依赖属性说明
Prereq软件的前驱程序
BuildRequires编译过程中所需要的软件
Packager软件的打包人员
Vender软件的开发商
%description软件的简要说明
%prep软件的尚未进行设置或者安装之前前置工作
%setup进行解压缩类的工作
%build软件的构建过程
%install软件的安装过程
%clean删除BuildRoot中的临时文件
%files需要安装的文件
%changelog更新记录

RHEL7 rpm pacakge guide
rpm打包软件1
rpm打包软件2
rpm打包软件3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值