Linux学习之包管理

Linux学习之程序包管理

1、包管理器就是对应用程序打包和包管理的应用软件,包管理包括安装、升级、卸载、查询和校验管理。

最早出现的包管理器是debian的deb,

随后reahat才推出了其包管理器rpm:RedHat package manager,之后就不断完善成为现在RedHat衍生版以及suse的包管理器;所以rpm的定义随之成为:RPM is package manager。

程序包是由以下四个部分组成:

1、二进制程序:/bin,/sbin,/usr/bin,/usr/sbin

2、库文件:/lib_64,/usr/lib_64

3、配置文件:/etc

4、帮助文档:manual,info

包管理器作用详解:

打包:将不同部分的文件归档组织存放的过程

安装:将包中的二进制文件、库文件、配置文件以及帮助文件存放至相应的目录,最后设置该程序的环境变量使程序能在系统中正常运行使用;

卸载:删除该程序的所有文件以及环境变量

升级:将新版的程序文件覆盖至就版本的程序文件上

查询:查看应用软件安装文件以及这些文件的信息

校验:核对包文件来源的合法性和完整性

2、rpm包:

分包机制:

PackageName-VERSION.tar.gz

其分包机制是将常用打包归档成为一个包,其他不常用的功能单独打包归档或以组合的方式打包归档;如:

核心包:PackageName-VERSION

支包:PackageName-Part1-VERSION

VERSION:版本包

版本号是由:主版本号(major)+次版本号(minor)+修正号(release)三部分组成的

主版本号:major的更改是软件的重要功能的加减引起的

次版本号:minor是一些小功能的增减引起的

修正好:release是弥补以前的bug

bash-4.2.4.tar.gz

rpm包的命名机制:

PackageName-VERSION-RELEASE.ARCH.rpm

VERSION:是软件包的版本号:

RELEASE:是rpm软件的修正号

ARCH:是表示该软件包使用的架构,如i386,x86_64等

如:

如何获取rpm包

a、发行版提供的程序包;这是安全级别最高的一种方式

b、Fedora-EPEL项目

c、项目的官方站点

d、搜索引擎 如:

http://rpmfind.net

http://rpm.pbone.net

http://pkgs.org

3、基于rpm命令实现程序包管理:

安装:

rpm {-i|--install} [install-options] PACKAGE_FILE

-i:安装

-v:显示过程,-vv,-vvv更加详细的显示安装过程

-h:以#表示安装进度

--nodeps:忽略依赖关系安装

升级:

rpm {-U|--upgrade} [install-options] PACKAGE_FILE

rpm {-F|--freshen} [install-options] PACKAGE_FILE

-Uvh:如果有旧版本的程序,则升级,如果没有则安装

-Fvh:如果有旧版本的程序,则升级,没有则不安装

--oldpackage:降级

--force:强制

卸载

rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_FILE

查询:

rpm {-q|--query} [select-options] [query-options]

查询选项:

-qa:查询本机已经安装的所有程序包

-qf /path/to/somefile:查询此处的文件由那个程序包安装生成;

-qc:查询指定程序包安装生成的配置文件

-qd:查询指定的程序包生成的文档

-qi:查询指定的程序包的祥光信息

-ql:查询程序包安装生成的所有文件的列表

-q --scripts:查询程序包相关的脚本

preinstall:安装前脚本

postinstall:安装后脚本

preuninstall:卸载前脚本

postuninstall:卸载后脚本

-p:查询正对是未安装的程序包文件;

校验:

rpm {-V|--verify} [select-options] [verify-options]

S file size differs//大小改变

M mode differs//权限改变

5 digest(formerly MD5 sum) differs//md5改变

D device major/minor number mismatch//设备文件的主次号不匹配

L readlin(2) path mismatch//

U user ownership differs//属主

G group ownership differs//属组

T mtime differs//修改时间戳

P caPabilities differs//删除文件

包校验:

来源的合法性

文件的完整性

导入密钥:rpm --import /path/to/KEY_FILE

校验:rpm -K /path/to/RPM_FILE

4、YUM:Yellow dog Updater Modified

通过仓库查找包并解决包依赖的问题

yum repositories:

文件服务器:

ftp://hosthome/path/to/REPO

http://hosthome/path/to/REPO

file:///path/to/REPO

yum程序的配置文件:

/etc/yum.conf :定义全局配置,对有有的仓库都试用的配置

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

一个文件通常用于一个或一组功能相近或相关的仓库

定义一个仓库指向:

[REPO_ID] //id是全局唯一的

name=     //名字

baseurl=   //文件服务器路径,建议不要指向多个

#mirrorlist=SCHME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE //baseurl的替代,MIRROR_LIST_FILE是一个定义了可用镜像文件列表的文本文件

enable={0|1} //是否启用仓库

gpgcheck={0|1} //是否对包进行校验

gpgkey= //指明使用哪个文件校验

cost    //指明这个仓库的开销

定义仓库指向可用变量:

$releasever:引用当前系统的主版本号

$basearch:引用当前系统的基本架构

htpp://mirror.xxx.xx/centos/$releasever/$basearch

5、yum命令

yum [options] [command] [package...]

[command]

安装:install

[[email protected] yum.repos.d]# yum install nmap
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
 * base: mirrors.sina.cn
 * extras: mirrors.sina.cn
 * updates: mirrors.sina.cn
base                                                                                               | 3.7 kB     00:00
extras                                                                                             | 3.4 kB     00:00
updates                                                                                            | 3.4 kB     00:00
解决依赖关系
--> 执行事务检查
---> Package nmap.x86_64 2:5.51-4.el6 will be 安装
--> 完成依赖关系计算

依赖关系解决

==========================================================================================================================
 软件包                    架构                        版本                               仓库                       大小
==========================================================================================================================
正在安装:
 nmap                      x86_64                      2:5.51-4.el6                       base                      2.8 M

事务概要
==========================================================================================================================
Install       1 Package(s)

总下载量:2.8 M
Installed size: 9.7 M
确定吗?[y/N]:y
下载软件包:
nmap-5.51-4.el6.x86_64.rpm                                                                         | 2.8 MB     00:00
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
  正在安装   : 2:nmap-5.51-4.el6.x86_64                                                                               1/1
  Verifying  : 2:nmap-5.51-4.el6.x86_64                                                                               1/1

已安装:
  nmap.x86_64 2:5.51-4.el6

完毕!

卸载:remove

升级:update

查询: info

search KEYWORD

list all | installed|availiable

provide /path/to/somefile:查询执行文件由那个包安装生成

重新安装:reinstall

降级:downgrade

清理缓存:clean [package|metadata|expire-cache|apmdb|plugins|all]

手动生成缓存:makecache

包组:

grouplist

groupinfo ‘GRP_NAME‘

groupinstall "GRP_NAME"

groupremove "GRP_NAME"

仓库:

repolist [all|enabled|disabled]

repoinfo [all|enabled|disabled]

至此包管理就先写到这里,后续会有更加详细的补充。欢迎大家关注!

时间: 2024-08-08 16:24:32

Linux学习之包管理的相关文章

Linux学习—rpm包管理

前言 在linux上,一个软件通常由二进制程序,库文件,配置文件和帮助文件组成.其中: 二进制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/usr/local/sbin这几个目录下边: 库文件都放在/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib和/usr/local/lib64这些目录下: 配置文件一般都是放在/etc这个目录下: 而最基本的man帮助文件则是放在/usr/share/man

Linux学习之日志管理(二十一)

Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服务名称 连接符号 日志等级 日志记录位置 日志轮替 日志文件命名 logrotate配置文件 logrotate命令 日志管理 日志服务 在Centos6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件

linux之程序包管理器(rpm)

linux下的程序包可支持多种工具编写的,如C.C++.PERL等. 但是这种高级语言编写出来的代码是我们人能看懂的,但是计算机是看不懂的,那么计算机怎么执行,怎么了解人要它做什么呢? 这就需要我们做一些转换了,把人能读懂的语言让机器也能识别,这个过程就是由编译器完成的,通常是吧代码语言转换成二进制语言. 过程:预处理.编译.汇编.链接 一个程序的运行大部分时间是离不开库的. 什么是库呢?库也是一种程序,只不过与其他程序不同,库没有执行入口,不能独立运行,只能被其他独立运行的程序调用的时候才能执

linux的程序包管理-rpm

我们知道,程序就是指令加上数据的集合或者称为算法加上数据结构的集合.应用程序以源代码和二进制的形式存在:源代码是包含了整个应用程序的编程语言的所有代码的文本文件:二进制则是将源代码经过一系列的转换操作之后得到的可以直接执行的文件.    使用源代码安装应用程序的步骤为:预处理(预处理器) --> 编译(编译器) --> 字节码 --> 汇编(汇编器) --> 链接(链接器) --> 可以直接执行的二进制程序文件.当我们使用源代码安装应用程序时,不同操作系统的相同操作安装出来的

Linux学习之用户管理命令与用户组管理命令(十五)

Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel 用户切换命令su 用户组管理命令 添加用户组 修改用户组 删除用户组 将用户添加到组或者从组中删除 用户管理命令 用户添加命令useradd 只能超级用户才能添加用户. useradd [选项] 用户名 选项: -u UID:手工指定用户的UID号 -d 家目录:手工指定用户的家目录 -c 用户说明

Linux学习之进程管理(十九)

Linux学习之进程管理 进程查看 查看系统中所有进程,使用BSD操作系统的格式 语法:ps aux 选项: a:显示所有前台进程 x:显示所有后台进程 u:显示这个进程是由哪个用户产生的 语法:ps -le 查看系统中所有进程,使用Linux标准命令格式 选项 l:显示详细信息 e:显示所有进程 USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越消耗资源. %MEM:该进程占用物理内存的百分比,占用越高,进程越消耗资源. VSZ:

马哥linux学习(linux上的包管理)

我们知道linux有许多服务,但这些服务都需要安装.升级或卸载.查询及效验,那就需要用到包管理工具,包管理器主要用于打包.包管理(安装.升级.卸载.查询及效验). 打包:就是按照既定规范存放于一个单一的归档文件中. 安装:把一个包展开,对应的安放于某些位置. 卸载:安装后的每一个文件都给找到,收集删除. 升级:把新版本的应用程序替换旧版本. 查询:可以查询安装的程序一些相关的信息. 效验:效验程序是否被篡改过. 下面我们说下linux里面最常用的两种包管理工具,RPM和YUM工具. 1.  RP

linux下程序包管理

我是一个老实人从来不说实话,我是一个好人从来不说真话,学习linux有段时间了,太高深的东西还不懂,就写一下最近学习的程序包管理吧. 大家都知道在我们学习linux主要是搞运维的,那么我们每天上班的时候就避免不了跟程序包打交道,你不信啊?反正我上班的时候领导总是在我不经意的抬头瞬间给我抛一个媚眼,我立马就领悟了领导的意思,有活要干了,最好不是服务器挂了老天保佑. 有时候我们需要在系统上安装某个软件或者服务(就是程序包),可能需要现在本地磁盘上查一下有没有这些程序包,有的话我们可以直接使用rpm

Linux的rpm包管理

我们都知道,windows的程序无法直接在linux中运行,windows中大量的木马和病毒也无法被linux识别,所有的软件包都必须针对linux再做单独的开发. 软件包分类 源码包 (把源代码直接开放的包) 脚本安装包(源码包写一个安装界面,不需要手动安装) 二进制包(RPM包.系统默认包) 源码包的优点: 1.开源,如果有足够的能力,可以修改源代码 2.可以自由选择所需的功能 3.软件是编译安装,所以更加适合自己的系统,更加的稳定也效率更高 4.卸载方便 缺点: 1.安装步骤较多,尤其在安