1、linux软件包管理

linux软件包管理分为两种:RPM包管理和源码包管理,其中RPM包管理又有两种方式:①RPM命令管理,②YUM在线命令管理。

RPM包依赖关系:

1、树形依赖

2、环形依赖 (用一条命令同时装来解决)

3、模块依赖,模块依赖查询网址www.rpmfind.net。例如,安装某个rpm包的时候需要依赖模块libodbcinst.so.2,解决步骤:在rpmfind网址上查找到模块所在的rpm包,然后安装该包即可。

区别“包全名”与“包名”

1、包全名:mysql-5.1.73-7.el6.x86_64.rpm,对应的包名:mysql

2、使用包全名:操作的包还没有安装,使用包全名。如,安装和升级操作。

3、使用包名:操作的包已经安装完成,使用包名即可,其会搜索/var/lib/rpm/中的数据库。如,查询和卸载操作。

一、RPM包管理——rpm命令管理:

安装:rpm  -ivh  包全名

选项:

  -i   安装(install)

  -v   显示详细信息(verbose)

  -h   显示进度(hash)

  --nodeps 不检查依赖性(导致功能缺失)

升级:rpm  -Uvh  包全名

选项:

  -U 升级(upgrade)

卸载:rpm  -e   包名

选项:

  -e   卸载(erase)

  --nodeps 不检查依赖性

查询: rpm -qa       //查询出所有已经安装的rpm包

    rpm -q  包名     //查询包是否安装

    rpm -qi  包名     //查询已经安装的软件信息

    rpm -qip 包全名    //查询未安装包信息

    rpm -ql  包名     //查询软件包文件安装位置

    rpm -qlp 包全名    //查询rpm包准备把文件安装到哪些位置

    rpm -qf 系统文件名   //查询系统文件属于哪个rpm包

    rpm -qRp 包全名   //查询软件包的依赖性

选项:

  -q   查询(query)

  -a   所有(all)

  -i  软件信息(information)

  -p  未安装包(package)

  -l   软件包文件安装位置列表(list)

  -f  系统文件属于哪个软件包(file)

  -R  软件包的依赖性(Requires)

校验:rpm  -V   已安装的包名

选项:

  -V   校验指定RPM包中的文件(Verify)

校验输出8个信息位,如果对应项的改变,则用点显示:

  S 文件大小是否改变

  M 文件的类型或文件的权限(rwx)是否改变

  5 文件的md5校验和是否被改变

  D 设备

  L 文件路径是否改变

  U 文件的所有者是否改变

  G 文件的所属组是否改变

  T 文件的修改时间是否改变

文件类型:

  c  配置文件(config file)

  d  普通文件(documentation)

  g  “鬼”文件(ghost file),很少见,就是该文件不应该被这个rpm包所包含

  l  授权文件(license file)

  r  描述文件(read me)

文件提取:rpm2cpio  包全名 | cpio -idv .文件的绝对路径        //注意这里的点“.”将rpm包中文件提取到当前目录中

说明:

rpm2cpio 将rpm包转换为cpio格式的命令

cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件

cpio  选项 <  [文件|设备]

选项:

  -i:  copy-in模式,还原

  -d:  还原时自动新建目录

  -v:  显示还原过程

文件提取命令使用例子:加入我把系统中的/bin/ls命令误删除了,如何还原?

①rpm  -qf  /bin/ls      //查询ls命令属于哪个软件包(别的机器,或网上)

②rpm2cpio  coreutils-8.22-15.el7.x86_64.rpm  |  cpio  -idv  ./bin/ls  //将ls提取到当前目录下

③cp  ./ls  /bin/       //把提取到的ls文件复制到/bin/目录下

二、RPM包管理——yum命令管理:

网络yum源配置文件(默认使用):/etc/yum.repos.d/CentOS-Base.repo

[base]     容器名称,一定要放在[]中

name      容器说明,可以自己随便写

mirrolist      镜像站点,这个可以注释掉

baseurl yum  源服务器地址。默认是CentOS官方的yum源服务器,可以更换成其他的yum源

enabled    此容器是否生效,如果不写或写成“enable=1”都生效,写成“enable=0”就不生效

gpgcheck     1指定RPM的数字证书生效,0则不生效

gpgkey     数字证书的公钥文件保存位置。不用修改。

查询:yum  list         //到网络服务器中查询所有可用rpm资源

   yum  search  关键字    //搜索服务器上所有和关键字相关的包

安装:yum  -y  install  包名   //安装,自动回答yes

升级:yum  -y  update  包名   //注意:如果没有包名,则会升级所有软件,包括内核。慎用升级所有。

卸载:yum  -y  remove  包名   //卸载。注意:yum会卸载所有依赖包,极有可能卸载掉共同依赖包,甚至是系统依赖包。服务器安装原则,最小化安装,不安装多余软件,不用yum卸载。

yum软件组管理:

查询组:yum  grouplist     //列出所有可用的组

安装组:yum  -y  groupinstall  “软件组名”     //安装组

卸载组:yum  -y  groupremove  “软件组名”     //卸载指定软件组

光盘yum源搭建步骤:

①挂载光盘

mount  /dev/cdrom  /mnt/cdrom/

②让网络yum源文件失效(enable=0,方便的做法是“改名”,yum源是靠检测“.repo”后缀来读取配置文件的)

cd    /etc/yum.repos.d/

mv  CentOS-Base.repo  CentOS-Base.repo.bak

mv  CentOS-Debuginfo.repo  CentOS-Debuginfo.repo.bak

mv  CentOS-Vault.repo  CentOS-Vault.repo.bak

③修改光盘yum源文件(注意,配置文件要严格准守默认格式)

配置baseurl=file://绝对路径     //如:file:///mnt/cdrom

使用enable=1,让文件生效

三、源码包管理:

一般来讲,包括“配置”“编译”“安装”,拿到一个源码包以后,一般打开其“INSTALL”或“README”文件,里面会有相关的编译安装说明。

时间: 2024-10-06 10:43:40

1、linux软件包管理的相关文章

Linux软件包管理01-RPM

一.软件包的组成 1.二进制程序(二进制,可执行):如,mysql,mysqld,mysqladmin 2.配置文件,组成方式: a)将主配置文件切割为多个小文件,并放置于某个目录中,如: /etc/profile,/etc/profile.d/* /etc/pam.conf,/etc/pam.d/* /etc/yum.conf,/etc/yum.conf.d/* b)单文件,在内部分割为多个片断 [mysql] [mysqld] 3.库文件(二进制,可执行): 静态库 动态库 4.帮助文件 手

Linux软件包管理02-RPM

一.rpm包常用管理命令 1.安装 a)rpm -i /PATH/TO/PACKAGE_FILE b)-h: 以#显示进度:每个#表示2%; c)-v: 显示详细过程 d)-vv: 更详细的过程 如:rpm -ivh /PATH/TO/PACKAGE_FILE e)rpm -ivh /mnt/CentOS/zsh-4.2.6-8.el5.i386.rpm f)--test:测试安装是否能正常进行 g)--nodeps: 忽略依赖关系: h)--replacepkgs: 重新安装,替换原有安装:

Linux软件包管理03-YUM

一.YUM定义 1.介绍:Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE.CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载.安装.每一个rpm包依赖于其它的哪些capacity,是rpm包的制作者定义的: 2.repository(仓库):yum源,包含rpm包集合.xml文档等等: 3.Re

linux软件包管理(上)

1.二进制包管理(RPM,yum) 2.源代码包的安装 3.脚本安装(shell或java) 4.Debian系列的linux软件包管理简介 在下载rmp包的时候注意检查硬件平台是否正确,如果硬件平台错误将会导致软件可以安装但是不能使用. RPM包的格式  sudo-1.7.2pl-5.el5.i386.rpm 上述分别代表  软件名  版本号  发行号   硬件平台 (1)rpm卸载 卸载只需要软件名,但是安装需要完整的rpm包的名字. 直接rpm –e 软件名即可 注意,如果卸载时软件存在依

Linux软件包管理04-压缩归档及源码编译安装

一.压缩.解压缩命令 1.压缩格式:gz, bz2, xz, zip, Z 2.压缩算法:算法不同,压缩比也会不同: 3.原始的压缩命令:compress: FILENAME.Z 解压缩:uncompress 4.压缩成.gz格式的文件(仅压缩文件) a)gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件,如:gzip /tmp/file* -d:解压缩,相当于gunzip命令: -#:指定压缩比,范围是1-9,默认是6: b)gunzip: 解压缩: gunzip /PATH

linux软件包管理(下)

在vi配置文件的编写的时候我们发现#并不能注释掉一行的信息 那什么才是linux标准的注释信息呢 查看软件对应的软件包命令 rpm –ap| grep vim 大多example是需要的事例文档  双引号注释vim配置文件 言归正传说linux软件包管理 (5)校验  rpm –v 软件名  当软件的配置文件被更改时候回告诉你被改位置. s size文件大小发生改变的时候.还有一个s:md5sum  当文件内容被改变的时候MD5sum就会变化. t时间变化  d设备文件  U文件的用户  G文件

Linux软件包管理之源码安装

Linux软件包管理之源码安装 源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言.Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件.所以如果你的机器上没有安装gcc就没有办法去编译源码.你可以使用 yum install -y gcc 来完成安装. 3.1 源码包安装的步骤 1.拿到源代码,并解压 #tar xf package-version.tar.{gz|bz2|xz} 注意:展开

linux软件包管理之RPM

RPM是RHEL的一款后端软件包管理工具:全称为RedHat Package Manage,由RedHat公司开发,主要作为RehHat Linux软件包的管理机制之一,但并未用作商业用途,而是遵循GPL协议,其设计理念是开放的:现包括SUSE.Openlinux等发行版都采用,是非常强大的软件管理工具. RPM是以一种数据库记录的方式来将需要的软件包安装到linux系统的一套管理机制,最大特点是: 1.由于软件包是已经编译过且打包完毕的,所以软件传输与安装很方便 2.由于软件安装之后信息都记录

Linux软件包管理——rpm

/etc, /bin, /sbin, /lib, /usr/share/man /etc, /bin, /sbin, /lib:系统启动就需要用到的程序,这些目录不能挂载在额外的分区,必须在根文件系统分区上 /usr/ bin sbin lib 操作系统核心功能,可以单独分区 /usr/local 建议单独分区 bin sbin lib etc man /opt:第三方默认安装位置,现在大多数为/usr/local目录下 /proc:不能单独分区,默认为空 /sys:不能单独分区,默认为空 /d