zoukankan      html  css  js  c++  java
  • RedHat系列软件管理(第二版) --二进制软件包管理

    RedHat系列软件管理

    --二进制软件包管理

    Linux学习思想-Linux相对与Windows来非常透明,因此,无论是系统,还是软件,都会有本身自带,或者是Man给提供的非常详细的说明/帮助文档,只要我们利用好这些文档,只要英文足够好,不需要任何教科书,任何教学视频,你都可以学好Linux

    RPM包管理

    Linux软件包命名形式

    sudo-1.7.2p1-5.el5.i386.rpm 

    #其中包括软件名(sudo),版本号(1.7.2pl),发行号(5.el5),和硬件平台(i386)

    卸载软件包

    rpm -e [soft-name] #如果其它软件包有依赖关系,卸载时会产生提示信息

    rpm -e --nodeps [soft-name] #添加--nodeps,可强行卸载;但是不建议这样卸载

    安装软件包

    rpm -ivh [软件包名]【如:sudo-1.7.2p1-5.el5.i386.rpm

    v:  表示显示详细信息,可选

    h 表示显示安装进度,可选

    1 挂载光盘:【最佳实践:将光盘,U盘等挂载到/mnt目录下】

    mkdir /mnt/cdrom

    mount /dev/cdrom /mnt/cdrom #现在打开/mnt/cdrom就相当与访问光盘内容

    2 查询是否存在:ls | grep sudo

    3 安装: rpm -ivh  sudo-1.7.2p1-5.el5.i386.rpm

    4 查看是否已安装:rpm -q sudo

    5 rpm -qa | grep samba #查询所有与samba有关的软件包

    -qa表示查询安装了的所有的软件包】


    rpm其他安装选项

    --excludedocs 不安装软件的文档

    --prefix=PATH  将软件包安装到由PATH指定的路径下

    如:rpm -ivh –prefix=/usr/local sudo-1.7.2p1-5.el5.i386.rpm

    【但是:大部分的rpm包都不允许改变安装路径】

    --test 只是进行测试,而不进行真正安装,比如获取依赖关系,该软件包是否已经安装

    附-光盘中所有的二进制软件全部保存在CentOS|Packages[新版centOS]目录下

    特殊情况

    A.覆盖安装

    --replacepkgs 覆盖软件安装包

    B.安装冲突

    如果要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息

    rpm -ivh sudo-1.8.6p3-7.el6.i686.rpm 
    warning: sudo-1.8.6p3-7.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
    Preparing...                ########################################### [100%]
    package sudo-1.8.6p3-7.el6.i686 is already installed

     使--replacefiles忽略改出错信息,覆盖安装

    C.未解决依赖关系

    该软件包可能依赖于其它软件包,在安装了特定的软件包之后才能安装该软件包。

    	rpm -ivh sudo-1.7.2p1-5.el5.i386.rpm 
    	failed dependencies: 
    	sudo is needed by bark-3.2-1l

    使用--nodeps 选项,可以强制安装此软件包,十有八九运行不了。


    升级软件包

    sudo -Uvh sudo-1.8.6p3-7.el6.i686.rpm  

    查询【重要】

    -a  查询所有已安装的软件包

    -f  查询文件所属软件包 

    -p  查询软件包,还没安装的软件包 

    -q  查询软件包是否安装

    -i  显示软件包信息 

    -l  显示软件包中的文件列表及所在位置

    -d  显示被标注为文档的文件列表及所在位置

    -c  显示被标注为配置文件的文件列表及所在位置

    实例:

    1、查询文件/命令隶属的软件包

    rpm -qf /etc/services #配置文件

    rpm -qf /bin/ls #命令

    2、查询软件包信息

    rpm -qi samba //查询一个已经安装的软件包

    rpm -qip samba-3.6.9-151.el6.i686.rpm #可以查询还没有安装的rpm,全称!

    3、查询安装包的安装文件,及安装文件所在位置

    rpm -ql sudo

    rpm -qip vsftpd-2.2.2-11.el6_3.1.i686.rpm #没有安装,全称!

    4、查询软件包帮助文档及所在位置

    rpm -qd sudo 

    rpm -qdp vsftpd-2.2.2-11.el6_3.1.i686.rpm #没有安装,全称!

    5、查询软件包配置文件及所在位置

    rpm -qc 

    rpm -qcp //同上

    RPM综合运用实例

    一、vncserver是干什么用的???

    rpm -qf vncserver

    然后 rpm -qi vnc-server #得知仔细信息

    二、查询vim的标准注释

    1.查询系统中是否已经安装某个安装包用:rpm -qa | grep vim

    而不是直接用:    rpm -a vim

    查询示例文档:rpm -qa vim | grep example

    2.然后打开并查看

    vi /usr/share/vim/vim72/vimrc_example.vim

    校验

    #可用于帮助我们判断软件包是否出现问题,以及出现的问题在哪里

    rpm -V name 正常情况下不会有任何提示,他的任何文件都没与更改

    rpm在安装一个软件到系统中时,会自动生成一个rpm库,校验时,会和这个库比对】

    文件的md5校验值 

    文件大小 

    链接文件 

    文件的创建或最后修改时间 

    设备文件 

    文件的用户 

    文件的用户组 

    文件的权限

    附-md5sum:通过md5算法对文件生成唯一的校验值,只要文件的内容不变,则校验值就不会变,对该文件内容做任何一个微小的改变,他的校验值都会改变

    重要文件修复

    比如/etc/inittab文件被删除,可以将该文件从原始的安装光盘中提取出来

    1.定位该文件隶属于哪个软件包

    rpm -qf /etc/inittab 

    2.解压所有文件到当前目录【不推荐】 

    rpm2cpio initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv 

       解压指定文件到当前目录【推荐】 

    rpm2cpio /mnt/cdrom/initscripts-8.45.30-2.el5.centos.i386.rpm | cpio -idv ./etc/inittab 【注意:./etc/inittab 只允许提取到当前目录下】

    【在Linux Server系统的管理上,我们更倾向与稳定,而不是最新版】

    YUM软件包管理

    应用YUM的好处

    1)自动解决软件安装包依赖关系

    2)方便软件包的升级

    3)可信任,官方软件包

    1、安装

    yum install sudo

    2检测升级

    yum check-update sudo

    yum check-update #检测所有的软件包的升级

    3、升级【比较重要,常用的软件包要经常升级一下】

    yum update sudo

    4、查询软件包信息

    yum list //会列出软件源上的所有软件包

    最佳实践: yum list | less

    yum list | grep samba

    5、查询软件包信息

    yum info [软件名]

    yum info sudo

    6、卸载软件包

    yum remove sudo

    7、查看帮助信息

    yum --help 或者  man yum

    【最佳实践:yum --help | less



  • 相关阅读:
    MUSIC分辨率与克拉美罗下界的关系
    EXCEL 基本函数
    新手如何正确的开始练车
    5.20考试整理
    树上倍增 x
    逆元 x
    BSGS ! x
    【テンプレート】LCA
    [HDOJ5783]Divide the Sequence(贪心)
    [HDOJ5791]Two(DP)
  • 原文地址:https://www.cnblogs.com/itrena/p/5927042.html
Copyright © 2011-2022 走看看