7yum学习笔记

author author     2022-09-06     191

关键词:

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


本文出自 “开源殿堂” 博客,请务必保留此出处http://kaiyuandiantang.blog.51cto.com/10699754/1942716

centos7yum错误相关

执行sed-i‘1anameserver 8.8.8.8‘/etc/resolv.conf 查看详情

centos7yum需要联网吗

一般情况是需要网的,也可以设置本地源。参考技术Ayum源不是本地就要联网,有本地yum源就不用 查看详情

centos7yum命令(代码片段)

1.yum清理缓存1[[email protected]/]#yumcleanall2[[email protected]/]#rm-rf/var/cache/yum/*  查看详情

centos7yum安装路径查询方法

先执行下面的命令,查看所有的已安装软件名称。rpm-qa然后执行rpm-ql软件名称就可以显示软件的安装路径。 查看详情

centos7yum安装mariadb

1、安装MariaDByum-yinstallmariadbmariadb-server安装完成MariaDB,首先启动MariaDBsystemctlstartmariadb设置开机启动systemctlenablemariadb接下来进行MariaDB的相关简单配置mysql_secure_installation首先是设置密码,会提示先输入密码Entercurrentpasswordforr 查看详情

(转)akka学习笔记

Akka学习笔记系列文章:  《Akka学习笔记:ACTORS介绍》  《Akka学习笔记:Actor消息传递(1)》  《Akka学习笔记:Actor消息传递(2)》    《Akka学习笔记:日志》  《Akka学习笔记:测试Actors》  《Akka学习笔记:Actor消... 查看详情

php7yum安装

CentOs7.X:rpm-Uvhhttps://mirror.webtatic.com/yum/el7/epel-release.rpmrpm-Uvhhttps://mirror.webtatic.com/yum/el7/webtatic-release.rpm可以安装的包yumsearchphp70w删除旧的yumremovephp*安装7.0yuminstallphp70wyuminstal 查看详情

centos7yum安装zabbix

CentOS7yum安装Zabbix一、Zabbix简介zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/... 查看详情

centos7yum安装bind报错

参考技术A虚拟机的网络是正常的吗?先排除网络原因,ping一下外网。 参考技术B缺少库啊,我倒是觉得是版本不对,你确定你的centos是7.x版本吗?#cat/etc/redhat-release追问 查看详情

centos7yum安装python3.6(代码片段)

CentOS7yum安装python3.6环境[[email protected]~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)依赖epel源配epel源_阿里wget-O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo安装pytho 查看详情

centos7yum搭建lamp

简易搭建lamp环境说明:        server:CentOS7-192.168.230.202      client:win8.1-192.168.230.59       &nb 查看详情

centos7yum更新内核

1、启用ELRepo仓库   # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh650)this.width=650;"src="https://s4.51cto.com/wyfs02/M02/9A/DD/wKioL1 查看详情

efcodefirst学习笔记

EFCodeFirst学习笔记初识CodeFirstEFCodeFirst学习笔记:约定配置EntityFramework复杂类型EntityFramework数据生成选项DatabaseGeneratedEntityFramework并发处理EFCodeFirst学习笔记:关系EntityFrameworkCodeFirst级联删除EFCodeFirst学习笔记:表映射EFCodeFirst学习 查看详情

centos7yum安装nginx

1.添加源,centos7默认可能没有nginx源  sudorpm-Uvhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2.查看是否添加成功  yumsearchnginx3.安装  yuminstall-ynginx4.启动  systemctlstatusng 查看详情

windows编程课程学习笔记

一.Windows程序内部运行机制--Windows编程课程学习笔记二.MFC框架程序分析--Windows编程课程学习笔记三.简单绘图--Windows编程课程学习笔记四.文本编程--Windows编程课程学习笔记五.菜单编程--Windows编程课程学习笔记六.对话框编程--Window... 查看详情

centos7yum相关的常用命令

[[email protected]~]#history|grepyum40yumrepolist42cd/etc/yum.repos.d/49yumcleanall50yumrepolist51yuminstall-yhttpd52yumrepolist53yumlist54yumlist|wc55yuminstallvim-X11.i686vim-common.i686vim-enh 查看详情

centos7yum使用

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体... 查看详情

系列文章--node.js学习笔记系列

Node.js学习笔记系列总索引Nodejs学习笔记(一)---简介及安装Node.js开发环境Nodejs学习笔记(二)---事件模块Nodejs学习笔记(三)---模块Nodejs学习笔记(四)---与MySQL交互(felixge/node-mysql)Nodejs学习笔记(五)---Express安装入门与模... 查看详情