Linux软件安装管理的三种方Linux软件安装管理的三种方式
Linux下常规的安装方式有三种,源码安装,二进制安装,在线使用yum和apt工具安装,三种方式各有优劣。下面逐步讲解Debian和RedHat系列的三种安装方式。
一、源码安装
源码,即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包)。源代码分发提供了软件所有程序源代码,需要用户自己编译成可执行的二进制代码并进行安装,根据应用环境的不同进行编译安装。
特点:
- 可以获取最新代码,及时修复bug
- 配置灵活,可以随意去掉或保留某些功能/模块
- 适应多种硬件/操作系统平台及编译环境
- 难度较大
1. *.tar.gz/*.tgz、*.bz2形式的源代码软件包
命令步骤:
cd /usr/local/src/
wget https://www.sudo.ws/dist/sudo-1.9.5p2.tar.gz
sha256sum sudo-1.9.5p2.tar.gz //验证sha256sum码(有的提供md5码),与官方对照,确定是否被篡改;
tar -zxvf sudo-1.9.5p2.tar.gz //解压,*.bz2包则执行 tar -jxvf *.bz2
cd sudo-1.9.5p2/ && ./configure #检测操作环境并生成makefile文件
make && make install #编译安装
不指定前缀,安装后
- 可执行文件默认放在/usr/local/bin
- 库文件默认放在/usr/local/lib
- 配置文件默认放在/usr/local/etc
- 其它的资源文件放在/usr/local/share
卸载:
make uninstall
或
手动删除软件在上述目录中的文件
注意事项:
- 建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置
- 为了便于删除移植,建议
./configure --prefix=目录名
,指定软件将要安装到目标路径,这样最后删除或者移动目录名,即可操作便捷干净
2. *.src.rpm形式的源代码软件包
需要先将源代码编译生成rpm二进制包,再以rpm二进制包的形式安装(参二2)
rpm -rebuild *.src.rpm
:编译源文件,并在/usr/src/dist/RPMS下生成二进制的rpm包
卸载方式参考rpm二进制安装
注意事项:
- 如果缺少编译软件
gcc,make, configure
,则可以通过yum/apt
在线安装 - 安装的同时,一定要想好如何卸载干净
计算机编译的原理
从源码安装到二进制包安装
虽然使用源码可以具有定制化设置,但是对于不同的
Linux distribution
的发行商,增加了软件管理的负担,严重影响linux
平台上软件的发行和推广。
为了解决这个问题,厂商在他们的系统上已为用户编译好了相关软件,然后将编译好可执行的软件直接发布给用户安装。
不同的linux
发行版使用不同的打包形式,不过一般分为两个包管理阵营:Debian 的”.deb“
,和Red Hat的”.rpm”
。也有一些重要的例外,比方说 Gentoo, Slackware,和 Foresight。
接下来介绍包安装的两种方式
二、二进制包安装
二进制包,如 Red Hat发行版的.rpm包,Debian发行版的.deb包。
1. rpm介绍
简介
RPM全称“RedHat Package Manager”
,该机制最早由Red Hat这家公司开发出来的,后来实在很好用,因此很多distributons就使用这个机制来作为软件安装的管理方式,包括Fedora,CentOS,SuSE等知名的开发商都是用它。
RPM最大的特点就是需要安装的软件已经编译过,并已经打包成RPM机制的安装包,通过里头默认的数据库记录这个软件安装时需要的依赖软件。
当安装在你的Linux主机时,RPM会先依照软件里头的数据查询Linux主机的依赖属性软件是否满足,若满足则予以安装,若不满足则不予安装。
优缺点
优点:
- 软件已经编译打包,所以传输和安装方便,让用户免除编译
- 在安装之前,会先检查系统的磁盘、操作系统版本等,避免错误安装
- 软件的信息都已经记录在linux主机的数据库上,方便查询、升级和卸载
缺点:
- 软件包安装的环境必须与打包时的环境一致或相当
- 必须安装了软件的依赖软件
- 卸载时,最底层的软件不能先移除,否则可能造成整个系统不能用
为了解决RPM属性依赖的问题,下面也将会为你详细介绍YUM的使用方法。
rpm包的含义
RPM包全名的命名格式:软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm
例如:ftp-0.17-74.fc27.i686.rpm
注意:
包全名:rpm操作没有安装的软件包,软件包使用的是包全名
包 名:rpm操作的已经安装的软件,软件包使用的是包名
例如上面的例子,包全名为ftp-0.17-74.fc27.i686.rpm,包名为ftp。
安装默认路径
/etc
配置文件放置目录
/usr/bin
一些可执行文件
/usr/lib
一些程序使用的动态链接库
/usr/share/doc
一些基本的软件使用手册与说明文件
/usr/share/man
一些man page档案
安装原理
2. rpm使用手册
1)软件安装(install)
rpm -ivh 包全名 //例: rpm -ivh emacs-25.3-1.fc28.aarch64.rpm
rpm参数说明(后面括号内为英文说明):
- -i:install的意思,安装
- -v:查看更详细的安装信息画面(provide more detailed output)
- -h:以安装信息栏显示安装进度
如果想安装多个用空格间隔然后接上要安装的rpm包即可,同时也支持通过网址的资源来安装。
2)软件升级
rpm –Uvh foo-2.0-1.i386.rpm
参数说明(后面括号内为英文说明):
- -U:upgrade的意思,更新软件,若系统中没有该软件则进行安装(upgrade package(s))
- -F:freshen的意思,更新系统已安装的某个软件(upgrade package(s) if alr