当前位置:   article > 正文

Linux的软件包管理_configuring lrzsz

configuring lrzsz

1、软件包的管理

软件包的类型:
  • rpm包管理:这种包已经使用GCC编译过的
  • 二进制包管理:最明显的就是有/bin的二进制目录
  • 源码包管理:这种包需要使用到GCC或者c++等编译而成

2、rpm包的简介:

RPM概述:RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

包名:对已经安装的包进行的升级和安装使用

包全名:安装未安装的包;

rpm安装的时候,系统会自动搜索/var/lib/rpm目录;

rpm包的获取方式:

  • CentOS系统光盘
  • 网站:rpmfind.net
  • 各种官网进行下载,比如是nginx的逛网,http://www.nginx.org

rpm包格式说明:

[root@master ~]# ls /mnt/cdrom/Packages/mariadb-5.5.56-2.el7.x86_64.rpm 
/mnt/cdrom/Packages/mariadb-5.5.56-2.el7.x86_64.rpm

#解释说明
mariadb-:软件名
5.5.56-:主版本号.次版本号.修订次数.
2.:修订次数
el7.:操作系统版本
x86_64.:x86的架构
rpm:rpm包

	#修订次数:就是第几次修改bug
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
rpm命令

作用:查询或者安装软件包

语法:rpm+选项+软件包

常用选项:

  • ivh:安装包
  • -V:校验
  • -e:卸载
  • -U:升级
#安装软件
[root@master ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.4.6-67.el7.x86_64.rpm 


#从网络上直接安装epel源
rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

	#epel是centos7系统中自带的base源的扩展
	
	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

rpm的常用查询功能

  • -qa:查询所有已安装的包
  • -ql:查询包的所有文件信息
  • -qc:查询包的配置路径
  • -qf:通过文件反向查询包
  • -qi:查询包的具体信息;
  • 如果查询未安装的包,需要加上-p选项
[root@master yum.repos.d]# rpm -qi httpd
未安装软件包 httpd 
[root@master yum.repos.d]# rpm -qi openssh

[root@master yum.repos.d]# rpm -qc openssh
/etc/ssh/moduli

[root@master yum.repos.d]# which find
/usr/bin/find
[root@master yum.repos.d]# rpm -qf /usr/bin/find
findutils-4.5.11-5.el7.x86_64

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

rpm的校验功能

  • -V:校验rpm包是否又被修改过
  • 常用:-Vf选项
[root@master ~]# which find
/usr/bin/find
[root@master ~]# rpm -qf /usr/bin/find
findutils-4.5.11-5.el7.x86_64
[root@master ~]# echo aa >> /usr/bin/find
[root@master ~]# rpm -Vf /usr/bin/find
S.5....T.    /usr/bin/find
[root@master ~]# rpm -V findutils
S.5....T.    /usr/bin/find

#解释说明
注:如果出现的全是点,表示测试通过
出现下面的字符代表某测试的失败:
	5 — MD5 校验和是否改变,你也看成文件内容是否改变
	S — 文件长度,大小是否改变
	L — 符号链接,文件路径是否改变
	T — 文件修改日期是否改变
	D — 设备
	U — 用户,文件的属主
	G — 用户组
	M — 模式 (包含许可和文件类型)
	? — 不可读文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

3、yum管理

简介:

yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记
YUM:解决依赖关系问题,自动下载软件包,它是基于C/S架构
C=client S=ftp\http\file

配置本地yum源

挂载光盘

[root@master ~]# mount /dev/cdrom /mnt/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
mount: /dev/sr0 已经挂载或 /mnt/cdrom 忙
       /dev/sr0 已经挂载到 /mnt/cdrom 上


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

编写光盘源文件

[root@master ~]# vim /etc/yum.repos.d/local.repo 
[local]						#源名称,在系统中是唯一的,区分不同的源
name=local					#yum源的描述信息
baseurl=file:///mnt/cdrom	#yum源路径,提的方式有:http:// ftp:// file://
enabled=1					#是否开启源,
gpgcheck=0					#是否开启校验功能,0为关闭,1为开启
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
配置阿里云的yum源

Linux中所有的源都会放在/etc/yum.repo目录下;

并且会用.repo结尾;

aliyun的网址:http://mirrors.aliyun.com/repo/Centos-7.repo

[root@master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2021-06-28 14:24:58--  http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 183.61.168.238, 183.60.138.232, 125.94.49.181, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|183.61.168.238|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”

100%[====================================================>] 2,523       --.-K/s 用时 0.005s  

2021-06-28 14:24:59 (449 KB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])

#添加扩展源





#查看阿里云的源
[root@master ~]# vim /etc/yum.repos.d/CentOS-Base.repo 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7


#解释:
$releasever:相当于7.4 (Maipo)
[root@master ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.4 (Maipo)


$basearch:相当于x86_64
[root@master ~]# uname -r
3.10.0-693.el7.x86_64


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
wget命令

作用:用于下载文件,

语法:wget+选项+网址

选项:

  • -O:把wget下载的文件,保存到指定的位置,保存的时候可以修改名字
  • -P:可以指定文件的路径
yum命令

作用:安装、卸载、升级软件包

语法:yum -y 【操作】+软件包名

常用操作:

  • install:安装
  • update:升级软件包,改变软件设置和系统设置,系统版本内核都升级
  • upgrade:升级软件包,系统版本升级,内核不升级
  • info:查询软件包信息
  • repolist:更新yum源
  • remove:卸载软件包
  • search:搜索关键词来搜索软件包
  • provides:查询软件包

yum源报错:注意的细节:

  • 确定光盘是否链接,光盘是否挂载
  • 配置文件中格式是否正确,字母,符号有没有少写,挂载点和配置文件中设置的是否一致
  • 网络源需要联网,操作和RPM类似,只是会自动安装依赖项。

yum支持组装软件包组

  • yum -y groupinstall 组名
  • yum grouplist:查看有什么组的软件包
#安装htppd
[root@master yum.repos.d]# yum -y install httpd

#查询httpd信息
[root@master yum.repos.d]# yum info httpd
...
已安装的软件包
名称    :httpd
架构    :x86_64
版本    :2.4.6
发布    :67.el7
大小    :3.7 M
源    :installed
....

#查询包安装
[root@master yum.repos.d]# yum provides lrzsz
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
lrzsz-0.12.20-36.el7.x86_64 : The lrz and lsz modem communications programs
源    :local
lrzsz-0.12.20-36.el7.x86_64 : The lrz and lsz modem communications programs
源    :@anaconda/7.4


#查询组包
[root@master ~]# yum grouplist 
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
可用的环境分组:
   最小安装
   基础设施服务器
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器
可用组:
   传统 UNIX 兼容性
   兼容性程序库
   图形管理工具
   安全性工具
   开发工具
   控制台互联网工具
   智能卡支持
   科学记数法支持
   系统管理
   系统管理工具
完成


#显示的是中文,然后如果想变成英文,需要修改字符集
[root@master ~]# echo  $LANG
zh_CN.UTF-8
[root@master ~]# LANG=EN
[root@master ~]# LANG=en

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

4、tar源码包管理

实战:源码编译nginx

源码编译:需要有编译环境,gcc和gcc-c++编译器,make

准备好软件包nginx的软件包

1)准备基础环境

[root@master ~]# yum -y install gcc gcc-c++ make zlib zlib-devel pcre pcre-devel openssl-developenssl 
	#zlib:支持压缩
	#pcre:支持正则表达式,地址重写功能,rewrite功能
	#gcc和gcc-c++:源码编译器
	#openssl:这个是加密相关;
	
#准备nginx的源码包
[root@master ~]# mv nginx-1.17.10.tar.gz  /usr/local/src/
[root@master ~]# cd /usr/local/src/
[root@master src]# ls
nginx-1.17.10.tar.gz

#解压源码包,并且进入到源码目录
[root@master src]# tar -xf nginx-1.17.10.tar.gz 
[root@master src]# cd nginx-1.17.10/
[root@master nginx-1.17.10]# pwd
/usr/local/src/nginx-1.17.10


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2)预编译源码包

  • 这里需要注意,一定要进入到源码目录;
  • ./configure进行预编译

./configure

  • –prefix=/usr/local/nginx:指定了nginx的源码安装路径

  • –enable-ssl:启用某些功能

  • –disable-filter:禁用某项功能

  • –whit-http_ssl_module:启用什么模块

  • –add-module=:添加第三方模块

  • 和其他软件关联:–with-pcre

预编译的功能:

  • 检查安装环境,是否存在gcc
  • 检测是否满足软件的依赖
  • 最终需要生成Makefile文件和objs目录
#预编译nginx
[root@master nginx-1.17.10]# ./configure --prefix=/usr/local/nginx
	#指定了nginx的路径,注意nginx目录可以不存在,它会帮你创建
  • 1
  • 2
  • 3

3)编译安装

生成了Makefile文件,相当于有了导航,

make -j 4:这命令代表指定4个核心的cpu编译,提升速度

make install:代表安装

如果在预编译过程中有报错,需要重新编译,可以使用make clean

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

[root@master nginx-1.17.10]# make -j 2  && make install

  • 1
  • 2

源码包的删除

安装完成–想要删除:make uninstall

源码包是最好最快的删除的,当指定了路径的时候,直接搬源码包的路径删除即可

实战:源码编译出错-排错篇

上传extundelete文件:用于故意测试源码报错

[root@master src]# rz
[root@master src]# ls
extundelete-0.2.4.tar.bz2

	#这里很明显发现,bz2格式的包;tar解压需要使用到-j选项
#解压extundelete
[root@master src]# tar -xjf extundelete-0.2.4.tar.bz2 
[root@master src]# cd extundelete-0.2.4/
[root@master extundelete-0.2.4]# 


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

尝试源码编译

[root@master extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete
Configuring extundelete 0.2.4
configure: error: Can't find ext2fs library

	#刚开始预编译就出现了报错
#根据报错提示:ext2fs library:这个库文件无法找到;


#我们查找一下这个库文件在哪里提供
[root@master extundelete-0.2.4]# yum search ext2fs
Failed to set locale, defaulting to C
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
====================================== Matched: ext2fs =======================================
e2fsprogs.x86_64 : Utilities for managing ext2, ext3, and ext4 filesystems
e2fsprogs-libs.i686 : Ext2/3/4 filesystem-specific shared libraries
e2fsprogs-libs.x86_64 : Ext2/3/4 filesystem-specific shared libraries

#搜索到了,直接yum安装
[root@master extundelete-0.2.4]# yum -y install e2fs*


#再次尝试预编译:
[root@master extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete

[root@master extundelete-0.2.4]# ./configure --prefix=/usr/local/extundelete
Configuring extundelete 0.2.4
Writing generated files to disk


#成功安装~!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

总结:

软件安装方法特点:

  • rpm+yum:方便,软件版本低。稳定性好、管理方便。性能稍差。
  • 源码编译安装:麻烦,软件版本新,可以定制。稳定性稍差、管理稍差。性能好。
  • 源码编译安装:主要是安装LAMP或LNMP 架构时用上
拓展:安装.src.rpm源码包的的方法

srpm:source RPM的意思:也就是这个rpm档案里含有原始代码(Source Code)

上传一个src.rpm的软件包上去

首先先卸载掉原来的lrzsz

#卸载lrzsz
[root@master src]# rpm -e lrzsz
[root@master src]# rpm -qa lrzsz

#准备src.rpm的包
[root@master src]# ls
extundelete-0.2.4          lrzsz-0.12.20-27.1.el6.src.rpm  nginx-1.17.10.tar.gz
extundelete-0.2.4.tar.bz2  nginx-1.17.10

#直接使用命令rpmbuild 命令处理
[root@master src]# rpmbuild --rebuild lrzsz-0.12.20-27.1.el6.src.rpm 
	#根据将src.rpm中源码文件编译成可执行的二进制文件。
	#若顺利执行成功则会在root用户家目录下生成一个:/root/rpmbuild目录。
[root@master src]# ls /root/rpmbuild/
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

	#在/root/rpmbuild/RPMS/x86_64/目录下生成lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm这个rpm文件。
[root@master src]# ls /root/rpmbuild/RPMS/x86_64/lrzsz-*
/root/rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.x86_64.rpm
/root/rpmbuild/RPMS/x86_64/lrzsz-debuginfo-0.12.20-27.1.el7.x86_64.rpm

	# rpm -ivh rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.centos.x86_64.rpm   #安装
[root@master src]# rpm -ivh /root/rpmbuild/RPMS/x86_64/lrzsz-0.12.20-27.1.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:lrzsz-0.12.20-27.1.el7           ################################# [100%]



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/319559
推荐阅读
相关标签
  

闽ICP备14008679号