07-软件管理

软件简介

Linux软件包大致可分为二进制包(Binary Code)、源码包(Source Code)

源代码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行;

二进制包无需编译,可以直接安装使用;

通常而言,区分是否为源码还是二进制 基于代码里面的文件来判断,

例如包含.h.c.cpp.cc等结尾的源码文件,称之为源码包,

而代码代码里面存在bin目可以执行文件,称之为二进制包。

有时候也可以通过后缀简单区别源码包和二进制包,例如.tar.gz、.zip、.rar结尾的包通常称之为源码包,

以.rpm结尾的软件包称之为二进制包。

 

软件管理

RPM

红帽包管理工具(Red Hat Package Manager,RPM)

使用RPM工具可以对软件包实现快速安装、管理及维护。RPM管理工具适用的操作系统包括:CentOS,RedHat,Fedora,SUSE等,RPM工具常用于管理.rpm后缀结尾的软件包。

这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的;

RPM软件包命令规则详解如下:

命名规则:

  name-version.rpm

  name-version-noarch.rpm

  name-version-arch.src.rpm

例:

  yasm-1.2.0-4.el7.x86_64.rpm

yasm: name 软件名称

1.2.0-4:version 版本号,1.2.0通用格式:“主版本号.次版本号.修正号”;4表示是发布版本号,该RPM包是第几次编译生成的;

el7:el* 软件包发行版本,el6表示该软件包适用于RHEL 6.x/CentOS 6.x;

x86_64: arch 适用的硬件平台,RPM支持的平台有:i386、i586、i686、x86_64、sparc、alpha等。

.rpm 后缀包表示编译好的二进制包,可用rpm命令直接安装;

.src.rpm 源代码包,源码编译生成.rpm格式的RPM包方可使用;
devel: 开发包;
noarch: 软件包可以在任何平台上安装。

rpm包的获取方式:

1、系统镜像光盘 

2、rpm包网站

  比如安装mysql、nginx软件,我们可以去它的官方网站下载

RPM工具命令详解:

RPM 选项 PACKAGE_NAME

rpm  -q              httpd                          检查httpd包是否安装;

rpm  -ql              httpd                          查看软件安装的路径;

rpm  -qi              httpd                          查看软件安装的版本信息;

rpm  -e              httpd                           卸载httpd软件;

rpm  -e  --nodeps    httpd                           强制卸载httpd;

rpm  -qa|grep          httpd                                 检查httpd相关的软件包是否安装。

rpm  -ivh             httpd-2.4.10-el7.x86_64.rpm            安装httpd软件包;

rpm  -Uvh            httpd-2.4.10-el7.x86_64.rpm           升级httpd软件;


rpm  -ivh  --nodeps    httpd-2.4.10-el7.x86_64.rpm           不依赖其他软件包;

常用组合:

rpm  -q              httpd                          检查httpd包是否安装;

rpm  -ql              httpd                          查看软件安装的路径;

rpm  -qi              httpd                          查看软件安装的版本信息;

rpm  -e              httpd                           卸载httpd软件;

rpm  -e  --nodeps    httpd                           强制卸载httpd;

rpm  -qa|grep          httpd                                 检查httpd相关的软件包是否安装。

rpm  -ivh             httpd-2.4.10-el7.x86_64.rpm            安装httpd软件包;

rpm  -Uvh            httpd-2.4.10-el7.x86_64.rpm           升级httpd软件;


rpm  -ivh  --nodeps    httpd-2.4.10-el7.x86_64.rpm           不依赖其他软件包;

可以看到上面再使用时有时候会用httpd (包名);但是有时候会用  httpd-2.4.10-el7.x86_64.rpm (全名)

那么到底什么时候该用什么呢?

全名:在安装和更新升级时候使用

包名:对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。它默认是去目录/var/lib/rpm下面进行搜索。 当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。 

YUM

yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。

基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包

基于C/S架构

YUM工作原理,YUM正常运行,需要依赖两个部分,一是YUM源端,二是YUM客户端,也即用户使用端。

通俗来说:YUM客户端安装的所有RPM包都是来自YUM源端YUM源端通过HTTP或者FTP服务器发布。

YUM客户端能够自动处理依赖性关系是由于在YUM源端生成了RPM包的基准信息,包括RPM包版本号、配置文件、二进制信息、依赖关系等。

YUM客户端需要安装软件或者搜索软件,会查找/etc/yum.repos.d下以.repo结尾文件

repo配置文件详解:

仓库ID]

name=YUM源显示名称;

baseurl=rpm包地址

enabled=是否启用YUM源;0不启用;1启用

gpgcheck=是否检查GPG-KEY;0不检查,1检查

  当gpgcheck=1时需要gpgkey=指定载目录下的GPG-KEY文件验证。

YUM客户端安装软件,默认会把YUM源地址、Header信息、软件包、数据库信息、缓存文件存储在/var/cache/yum中,每次使用YUM工具,YUM优先通过Cache查找相关软件包,Cache中不存在,然后在访问外网YUM源。

yum的用法:

yum install httpd                             安装httpd软件包;

yum search                            YUM搜索软件包;

yum list     httpd                      显示指定程序包安装情况httpd;

yum list                             显示所有已安装及可安装的软件包;

yum remove  httpd                         删除程序包httpd;

yum erase   httpd                        删除程序包httpd;

yum update                              内核升级或者软件更新;

yum update  httpd                         更新httpd软件;

yum check-update                        检查可更新的程序;

yum info    httpd                       显示安装包信息httpd;

yum provides                            列出软件包提供哪些文件;

yum provides "*/rz"                         列出rz命令由哪个软件包提供;

yum grouplist                          查询可以用groupinstall安装的组名称;

yum groupinstall "Chinese Support"                    安装中文支持;

yum groupremove "Chinese Support"                   删除程序组Chinese Support;

yum deplist httpd                         查看程序httpd依赖情况;

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

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


yum clean   all                           清除缓存目录下的软件包及旧的headers。

一般卸载软件而不卸载依赖的时候会使用rpm来卸载软件

源分为三种:

一。本地源

二。base源

三。epel源(base的扩展源):yum install epel-release -y

YUM本地镜像源默认只能本机使用,局域网其他服务器如果想使用的话,需要在每台服务器上构建YUM本地源,该方案一般在企业中不用,所以需要构建HTTP来发布YUM源解决,可以通过CreateRepo创建本地YUM源端

构建HTTP局域网YUM源方法及步骤如下:

  1.挂载光盘镜像文件至/mnt

  2.安装HTTP服务

  3.将/mnt/Packages目录下所有软件包拷贝至/var/www/html/packages/下

  4.使用createrepo创建本地源,执行如下命令会在packages目录生成repodata目录

    createrepo  /var/www/html/packages/  创建

    createrepo   --update  /var/www/html/packages/  更新

  5.用HTTP发布YUM本地源

  6.在客户端编写.repo文件

源码包

可以通过tar、zip、jar等工具进行源码包的管理

tar命令参数详解

-A, --catenate, --concatenate         将存档与已有的存档合并

-c, --create                     建立新的存档

-d, --diff, --compare            比较存档与当前文件的不同之处

--delete                        从存档中删除

-r, --append                    附加到存档结尾

-t, --list                          列出存档中文件的目录

-u, --update                    仅将较新的文件附加到存档中

-x, --extract, --get                解压文件

-j, --bzip2, --bunzip2            有bz2属性的软件包;

-z, --gzip, --ungzip                有gz属性的软件包;

-b, --block-size N              指定块大小为 Nx512 字节(缺省时 N=20);

-B, --read-full-blocks              读取时重组块;

-C, --directory DIR             指定新的目录;

--checkpoint                    读取存档时显示目录名;

-f, --file [HOSTNAME:]F         指定存档或设备,后接文件名称;

--force-local                   强制使用本地存档,即使存在克隆;

-G, --incremental               建立老 GNU 格式的备份;

-g, --listed-incremental            建立新 GNU 格式的备份;

-h, --dereference               不转储动态链接,转储动态链接指向的文件;

-i, --ignore-zeros                  忽略存档中的 0 字节块(通常意味着文件结束);

--ignore-failed-read                在不可读文件中作 0 标记后再退出;

-k, --keep-old-files                保存现有文件;从存档中展开时不进行覆盖;

-K, --starting-file F               从存档文件 F 开始;

-l, --one-file-system               在本地文件系统中创建存档;

-L, --tape-length N             在写入 N*1024 个字节后暂停,等待更换磁盘;

-m, --modification-time             当从一个档案中恢复文件时,不使用新的时间标签;

-M, --multi-volume              建立多卷存档,以便在几个磁盘中存放;

-O, --to-stdout                 将文件展开到标准输出;

-P, --absolute-paths                不要从文件名中去除 '/'-v, --verbose                    详细显示处理的文件;

--version                        显示tar 程序的版本号;

--exclude                     FILE不把指定文件包含在内;

-X, --exclude-from FILE            从指定文件中读入不想包含的文件的列表。

常用组合:

tar        -cvf     test.tar.gz        /etc/          打包etc目录,打包后名称 test.tar.gz
tar -tf test.tar.gz 查看test.tar.gz包中内容
tar -rf test.tar.gz test.txt 将test.txt文件追加到test.tar.gz 中
tar -xvf test.tar.gz 解压test.tar.gz

源码包安装通常需要./configure、make、make install三个步骤,某些特殊源码可以只有三步中的其中一个步骤,或者两个步骤。

详解源码安装:

# ./configure

    a. 指定安装路径,例如 --prefix=/usr/local/nginx

    b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module

    c. 和其它软件关联,例如--with-pcre

    d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求

最终生成:Makefile

make   #按Makefile文件编译,可以使用-j 4指定4核心CPU编译,提升速度

make install  #按Makefile定义的文件路径安装

make clean //清除上次的make命令所产生的object和Makefile文件。使用场景:当需要重新执行configure时,需要执行make clean

以nginx为例

wget http://nginx.org/download/nginx-1.13.0.tar.gz

tar  -xvf nginx-1.13.0.tar.gz

cd nginx-1.13.0

./configure   --prefix=/usr/local/nginx

make

make  install

rpm  -q                     httpd                                          检查httpd包是否安装;

rpm  -ql                    httpd                                          查看软件安装的路径;

rpm  -qi                    httpd                                          查看软件安装的版本信息;

rpm  -e                      httpd                                         卸载httpd软件;

rpm  -e  --nodeps    httpd                                          强制卸载httpd

rpm  -qa|grep          httpd                          检查httpd相关的软件包是否安装。

rpm  -ivh                   httpd-2.4.10-el7.x86_64.rpm     安装httpd软件包;

rpm  -Uvh                  httpd-2.4.10-el7.x86_64.rpm     升级httpd软件;

rpm  -ivh  --nodeps    httpd-2.4.10-el7.x86_64.rpm     不依赖其他软件包;

猜你喜欢

转载自www.cnblogs.com/zzzhbr/p/11334725.html