千家信息网

7、yum 学习笔记

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,Linux的程序包管理:软件包的组成部分:二进制程序 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin库 lib, /
千家信息网最后更新 2025年02月04日7、yum 学习笔记

Linux的程序包管理:

软件包的组成部分:

二进制程序 /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

库 lib, /usr/lib, /lib64, /usr/lib64, /usr/local/lib, /usr/local/lib64

/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

配置文件 /etc

帮助文件 man文件, info文件, README, INSTALL, ChangeLog


man COMMAND

到某路径下查找与命令名同名的通常以.gz结尾的压缩文件的名字

/usr/share/man/


ldd命令:

查看应用所依赖的共享库

ldd [options] FILE...


rpm包的使用:

rpm包命名格式:

源程序:name-version.tar.{gz|bz2|xz}

version: major.minor.release


rpm包:name-version-release.arch.rpm

release:通常包含rpm的制作发行号,还包含适用的OS

bash-4.3.2-2.el6.x86_64.rpm


来源合法性验正:

源程序:通过md5或sha1校验码验正;

rpm包:发行商提供的合法性是可信的

验正包完整性:校验码

验正来源合法:公钥



获取rpm包的途径:

1、发行商的光盘或站点服务器

以CentOS为例:

http://mirrors.163.com

http://mirrors.sohu.com

2、http://rpmfind.net

3、http://rpm.pbone.net



rpm包管理:安装

# rpm -ivh [install-options] /path/to/rpm_package 安装软件包,显示安装进度

[install-options]

--test 仅测试,不真正执行安装过程

--nodeps 忽略依赖关系

--replacepkgs 重新安装

原来的配置文件不会被覆盖,新安装的配置文件将会重命名为以.rpmnew为后缀的文件



rpm包管理:卸载

#rpm -e [install-options] package_name 卸载软件包

[install-options]

--nodeps 忽略依赖关系



rpm包管理:查询


#rpm -qa 查询所有已经安装的包

#rpm -q package_name 查询某单个包是否安装

#rpm -qi package_name 查询包的描述信息

#rpm -ql package_name 查询包安装之后在当前系统生成文件列表

#rpm -qd package_name 查询包安装后生成的帮助文档

#rpm -qc package_name 查询包安装后生成的配置文件

#rpm -qf /path/to/somefile 查询某文件是哪个包安装生成的

#rpm -q --scripts package_name 查询包相关的脚本

脚本有四类:

preinstall 安装前脚本

postinstall 安装后脚本

preuninstall 卸载前脚本

postuninstall 卸载后脚本


查询尚未安装的rpm包文件的相关信息:

#rpm -pqi /path/to/package_file 查询包的描述信息

#rpm -pql /path/to/package_file 查询包安装之后在当前系统生成文件列表

#rpm -pqd /path/to/package_file 查询包安装后生成的帮助文档

#rpm -pqc /path/to/package_file 查询包安装后生成的配置文件



rpm包之升级:


#rpm -Uvh [install-options] /path/to/package_file 升级或安装

#rpm -Fvh [install-options] /path/to/package_file 升级

[install-options]

--nodeps 忽略依赖关系

--force 强行安装



rpm包管理:检查包安装后生成的文件是否被修改过;

#rpm -V package_name


S file Size differs

M Mode differs (includes permissions and file type)

5 digest (formerly MD5 sum) differs

D Device major/minor number mismatch

L readLink(2) path mismatch

U User ownership differs

G Group ownership differs

T mTime differs

P caPabilities differ



rpm包管理:检验来源合法性和软件包完整性

包完整性:通过单向加密机制(md5|sha1)

来源合法性:通过公钥加密机制(RSA)


导入制作者的公钥,CentOS发行版的公钥在iso文件中;

导入命令:rpm --import /path/to/gpg-key-file


#pm -K --nosignature /path/to/package_file 只检查完整性,不检查来源合法性 #pm -K --nodigest /path/to/package_file 不检查完整性,只检查来源合法性

#pm -K /path/to/package_file 既检查完整性,又检查来源合法性


rpm包管理:数据库重建

数据库:/var/lib/rpm/


#rpm --initdb 初始化,如果事先不存在一个数据库,则新建之;

#rpm --rebuilddb 重建,直接重建数据库,会覆盖原有的库;



yum客户端:

1、配置文件:指定各可用的yum仓库;

2、缓存元数据:yum会到各可用yum仓库获取元数据,并缓存至本地;

3、分析元数据:根据具体操作请求完成元数据分析, 可能包括检查依赖关系、文件列表等信息;

4、执行具体操作:


客户端配置文件指定对应服务器访问方式:

ftp ftp://server/path/to/repo

http http://server/path/to/repo

nfs nfs://server/nfs_path

file file:///path/to/repository


要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中:

/etc/yum.conf

/etc/yum.repos.d/*.repo


配置文件格式:由两段组成,类似windows的ini配置文件

[main] :主配置段

[repo] :仓库配置段


配置repo:

[repo_ID]

name=String

baseurl=仓库的访问路径

enabled={1|0}

gpgcheck={1|0}

gpgkey=公钥文件(可以在本地,也可是服务器端路径)

cost=定义此仓库开销,默认为1000


[base]

name=CentOS 6.5 X86_64 relase

baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/

enabled=1

gpgcheck=1

gpgkey=http://172.16.0.1/cobbler/ks_mirror/centos-6.5-x86_64/RPM-GPG-KEY-CentOS-6



yum的各命令:

# yum repolist 列出所有可用yum repo

# yum clean all 清理缓存


# yum list [all|installed|available] 列出[所有的安装包|已安装包|可安装包]

# yum info package_name 列出包的描述信息

# yum whatprovides|provides /path/to/somefile 查询某文件是由哪个包安装生成的


# yum install package_name 安装指定的程序包

# yum reinstall package_name 重新安装指定的程序包

# yum erase package_name 卸载指定的程序包

# yum check-update 检查可升级的包

# yum update package_name 升级指定的程序包

# yum downgrade package_name 降级指定的程序包

# yum grouplist 列出所有包组

# yum groupinfo "group_name" 显示包组信息

# yum groupinstall "group_name" 安装指定的包组

# yum groupremove "group_name" 卸载指定的包组


如果系统为CentOS 5,常用的开发包组为"Development Tools"和"Development Libraries"

如果系统为CentOS 6,常用的开发包组为"Development Tools"和"Server Platform Development"


安装本地包:

# yum install /path/to/package_file

手动禁止检查来源及完整性:--nogpgcheck

# yum --nogpgcheck install /tmp/zsh-2.3.1-2.el6.x86_64.rpm



练习:安装相关的包组,确保如下命令可执行

# gcc --version

gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)

Copyright (C) 2010 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


#yum -y groupinstall "Development tools" "Server Platform Development"



yum repository: 文件服务器

repodata/:

repomd.xml:


测试实现yum repository的配置:

1、准备文件服务器;使用httpd为例,请事先确保已经安装httpd程序包;

2、在/var/www/html目录,使用一个目录来保存准备制作成为yum仓库的所有rpm包;

# cd /var/www/html

# lftp 172.16.0.1/pub/Sources/6.x86_64

# lftp: > mirror openstack

# bye

3、创建yum仓库

# rm -rf /var/www/html/openstack/repodata

# createrepo /var/www/html/openstack

4、启动httpd服务

# service httpd start

5、配置使用自建的yum仓库

[openstack]

name=Openstack Repository

baseurl=http://172.16.100.7/openstack/

enabled=1

gpgcheck=0

6、配置好epel的yum源

7、测试使用

# yum install openstack-keystone



程序包管理之编译安装:


源程序:

项目工程:把代码分散于多个源代码文件

GNU/make


autoconf: configure脚本

检查编译环境是否编译需求,并定义当前程序编译时启用哪个特性或功能,以及安装路径的定义等等;

结果:会根据Makefile.in文件生成makefile文件

automake: Makefile.in文件

用于结合configure脚本生成makefile文件

makefile文件是make命令的配置文件



编译安装的步骤:

1、拿到源代码,并解压:

# tar xf package-version.tar.{gz|bz2|xz}

注意:展开后的目录名通常为package-version

2、切换至源码目录中

# cd package-version

3、执行configure脚本

# ./configure

4、编译

# make

5、安装

# make install



configure脚本的通用功能:

我们需要定义的配置:

1、指定安装路径:

--prefix=/usr/local/package_name

--sysconfdir=/etc/package_name

2、指定启用/禁用的特性:

--enable-feature: 例如--enable-fpm

--disable-feature: 例如 --disable-socket

3、指定所依赖功能、程序或文件

--with-function:启用某功能

--without-function:禁用某功能


不同的程序,其configure脚本功能不同,要获取帮助:

./configure --help


练习:

1、编译安装nginx, 并启动之;

2、编译安装axel,并试用之;

3、编译安装httpd,并启动之;



/usr/local/apache/bin


二进制程序:

# vim /etc/profile.d/apache.sh

PATH=/usr/local/apache/bin:/usr/local/apache/sbin:$PATH

export PATH


头文件输出给系统:

# ln -sv /usr/local/apache/include /usr/include/httpd


库文件输出:

# vim /etc/ld.so.conf.d/httpd.conf

/usr/local/apache/lib


让系统重新生成库文件路径缓存

# ldconfig



导出man文件:

# vim /etc/man.config

MANPATH /usr/local/apache/man


文件 配置 查询 程序 脚本 检查 仓库 管理 编译 合法 数据 来源 合法性 完整性 生成 信息 功能 命令 系统 路径 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 青浦区品质金融网络技术服务热线 关系型数据库是以什么为基础结构 网络安全查纠整改措施 数据库密码搞忘了 hbase数据库结构 石油十四五规划网络安全 rust服务器管理员指令 CNKI是全文型数据库() 数据库管理的重要性 软件开发流程方法论 社会层面网络安全威胁 问道如何查询账号所在的服务器 4位专家共话网络安全 浪潮服务器报警图标 化可安服务器是华为服务器吗 数据库一致性管理 虹口区银联网络技术价格咨询 电大数据库应用技术应用题 政府网络安全研究生 我省网络安全宣传 语音聊天软件开发哪里做得好 全球网络安全国家有多少 临沂鹰盟网络技术有限公司 江西赣州dns服务器云服务器 08版服务器任务管理器 oa办公软件开发资料 艾哗茂互联网科技有限公司 网络安全保护措施文本 如何查询服务器上的所有用户 服务器报警灯含义及处理办法
0