Bootstrap

Linux软件安装管理的三种方式——源码安装/deb/rpm/yum/apt

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
;