Linux软件包管理与实例

Linux系统的早期,编译是利用程序代码生成可执行文件的过程的手动编译。虽具有一定优势,但是专业知识要求高,不利于实际操作。因此出现了许多软件包管理器,最具代表的是由Red Hat 推出的RPMYum则有利于解决linux安装软件时的依赖性。

所谓依赖性,就是linux系统中的软件将不同的功能模块单独写入到不同的软件包中,最后将多个相互依存的软件包结合起来形成一个应用程序(网上答案)。通俗来说,就是你在linux安装程序时,会接二连三的要求你先安装与正要安装的程序有依赖性的软件才可以。

以下分别讲述rpmyum

rpm包命名方式:

name -VERSION-release.arch.rpm

VERSION: minor major release

release: release.OS

常见的arch:

×86i386, i486, i586, i686

×86_64: ×64, ×86_64, amd64

以下是RPM软件包名称格式:

Linux软件包管理与实例

包命名和工具:

Linux软件安装包的类型

通常Linux应用软件的安装包有三种:
1tar包,如software-1.2.3-1.tar.gz。他是使用UNIX系统的打包工具tar打包的。
2rpm包,如software-1.2.3-1.i386.rpm。他是Redhat Linux提供的一种包封装格式(www.rpmfind.NET)。
3dpkg包,如software-1.2.3-1.deb。他是Debain Linux提供的一种包封装格式。
4) bin包,如RealPlayer11GOLD.bin,它是realplayerlinux文件下的二进制安装格式,它是源程序经过编译后的一种机器语言。
5)脚本安装文件,这一类格式比较多,例如后缀为shplrun的文件都是脚本文件。不过对于普通用户不太常见。安装这类文件要注意的问题是,多数要给文件先增加可执行权限,否则有可能会提示找不到文件。具体方法:终端或控制台下执行 chmod +x ***.*,然后再安装

一:rpm

Rpm命令基本格式:

rpm [option]

-q : 使用查询模式

-a : 查询所有软件包

-i : 显示所有详细信息。如果指定了软件包,则安装软件包

–install 安装

–test 检测

–nodeps 忽略依赖性关系直接安装

–replacepkgs 已安装过的包重装

–nosignature 不检查来源合法性

–nodigest 不检查包完整性

–noscripts 不执行程序包脚本

%pre: 安装前脚本; –nopre

      %post: 安装后脚本; –nopost

      %preun: 卸载前脚本; –nopreun

      %postun: 卸载后脚本; –nopostun

-l : 显示软件包的文件列表

-p : 查询指定的软件包

-f : 查询指定文件所属软件包

-v : 显示命令执行过程

-h : 安装软件包时显示进度信息

-e : 卸载指定的软件包

-U : 升级软件包

实例:

如果想查看已经安装的所有软件包:

[root@localhost ~]# rpm -qa

如果想查看某个软件包:

[root@localhost ~]# rpm -qa | grep 软件包名

查询文件所属软件包(需要输入文件的绝对路径)

[root@localhost ~]# which ls

[root@localhost ~]# rpm -qf /usr/bin/ls

使用rpm命令安装软件包

[root@localhost ~]# df #查看光盘是否挂载

Filesystem     1K-blocks    Used Available Use% Mounted on

/dev/sda2       48803552 4772816  44030736  10% /

devtmpfs         1001392       0   1001392   0% /dev

tmpfs            1016064      84   1015980   1% /dev/shm

tmpfs            1016064    9172   1006892   1% /run

tmpfs            1016064       0   1016064   0% /sys/fs/cgroup

/dev/sda5       48803552   33008  48770544   1% /app

/dev/sda1         972452  156004    816448  17% /boot

tmpfs             203216      16    203200   1% /run/user/42

tmpfs             203216       0    203216   0% /run/user/0

/dev/sr0         8086368 8086368         0 100% /media

[root@localhost ~]# cd /media

[root@localhost media]# ls

CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7

EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7

EULA             isolinux  repodata  TRANS.TBL

[root@localhost media]# cd Packages/

[root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm

Preparing…                          ################################# [100%]

Updating / installing…

   1:tree-1.6.0-10.el7                ################################# [100%]

[root@localhost Packages]# rpm -qa tree

tree-1.6.0-10.el7.x86_64

使用rpm卸载软件包:

[root@localhost Packages]# rpm -e tree

-Uvh 当有旧的版本的包时,则卸载旧包再装新包,如没有旧包,直接装新包

-Fvh 当有旧的包时,卸载旧包装新包,无旧包时,什么也不做

–oldpackage 降级 已有新包,装旧包

–force 强制安装

 -q 软件包名  查询已安装过的软件包名。

     -qa 列出所有的已安装过的rpm

      -qa “name*”

      -qa |grep name

     -qf 查询一个文件来自于哪一个rpm包 (已安装的rpm

     -q –changelog 版本更新日志

     -qc 查询软件包的配置文件(不是所有包都有配置文件)

     -qd 查询软件包的帮助文档

     -qi 查询软件包的详细信息

     -ql 查询软件包所安装到系统当中的所有文件路径

     -q –scripts 查询软件包自带的脚本

     -q –provides 查询自身的功能

     -qR 查询实现自身的功能需要什么能力

     -qp[licd] rpm包 查看未安装的rpm包的各项信息二:yum

-e 软件名

    –nodeps 忽略依赖性。强制卸载

二:yum

Yumyum仓库,yum仓库里放着rpm包文件和元数据文件(放置于特定目录repodate下)。其工作原理是:

当执行yum install rpmfilename(安装软件包时),会先下载元数据里记录rpm依赖关系数据的文件,同时临时产生一个文件来缓存这些数据,然后就会下载所有有依赖关系的安装包,最后执行安装,安装完成之后会删除那个临时文件。

Yum配置文件:

/etc/yum.conf: 为所有仓库提供公共配置

/etc/yum.repos.d/*.repo:为仓库的指向提供配置

仓库指向的定义:

[repositoryID]

name=some name for this repository

baseurl=url://path/to/repository

enabled={1|0}

gpgcheck={1|0}

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority}

roundrobin:意为随机挑选,默认值

priority:按顺序访问

cost=默认为1000

Yum的用法:

yum check-update 列出所有可更新的软件清单

yum update 安装所有更新软件

yum install <package_name> 仅安装指定的软件

yum remove <package_name> 删除指定软件包

yum list 列出所有可装的软件清单

yum list updates 列出所有可更新的软件包

yum list installed 列出所有已安装的软件包

yum list extras 列出所有已安装但不在yum repository 内的软件包

yum search <keyword> 查找软件包

yum info 列出所有软件包的信息

yum provides <package_name>  列出软件包提供哪些文件

yum clean packages 清除缓存目录(/var/cache/yum)下的软件包

yum clean headers 清除缓存目录(/var/cache/yum)下的headers

以上所列有针对所有文件,若你想只针对单个包文件进行操作,只需跟上包文件名就可以了。

注意:不建议只执行yum update命令,因为会造成所有软件都会更新安装,如非需要,在工作中尽量不要执行此条命令。

原创文章,作者:xxcj,如若转载,请注明出处:http://www.178linux.com/84631

(0)
xxcjxxcj
上一篇 2017-08-13 15:43
下一篇 2017-08-13 17:55

相关推荐

  • 优云老王(四)干货总结:数据带来的奇妙世界

    作为产品经理的我们,不仅仅需要业务敏感的直觉,还需要数据驱动我们的产品不断创新!关于如何看数据,我列了主要的四个场景。 场景一:看页面点击,了解用户关注什么,卡在哪里 给谁看:产品经理和交互设计师 看什么: 由于我们对Web应用的所有界面,可交互元素都做了埋点,那么我们就可以看用户在页面里都做了哪些点击动作。首先是整个页面的横向比较,每个页面本身的操作数(重…

    2016-09-19
  • N25期–第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 启动过程 (PC架构)    POST –> Boot Sequence(BIOS) –> Boot Loader (MBR)–>GRUB—> Kernel(ramdisk) –> ro…

    Linux干货 2017-03-13
  • Centos6系统救援模式

    CentOS 6系统救援模式 在学习了CentOS 5、6系统启动流程与启动故障排除之后,为了加深印象进行了如下破坏性尝试。 删除/boot目录与/etc/fstab文件后尝试修复系统 1. 首先是第一步删除/boot目录与/etc/fstab 删除/boot /etc/fstab 可以看到虽然boot目录无法删除但是目录中的文件已经全部删掉了。 2. 重新…

    Linux干货 2016-11-24
  • Nginx配置与应用详解

    前言 Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站都已使用Nginx作为Web应用服务器。本文带来的是Nginx配置与应用详…

    Linux干货 2015-06-15
  • 文本处理工具和shell脚本基本编程

    文本处理工具 grep 对文本进行搜索获取我们想要的行(关键信息) egrep 支持扩展正则表达式的grep fgrep 快速搜索不支持正则    -v 取反  找出不包含“pattern”的行  -i 忽略字符的大小写  -n 显示行号  -c 显示统计到的行数,等同于wc -l  -o…

    2017-04-09
  • Nginx 负载均衡多个nmmp主机

    设计拓扑图 一、Memcache简介 cache(缓存系统) 高性能分布式缓存服务器,缓存所有的“可流式化”数据:livejournal旗下Danga Interacive公司 程序=指令+数据 指令:程序 数据:IO操作 文件系统: 特征:协议简单  基于libevent的事件处理  内置内存存储方式  memcached 不…

    2016-06-14