zoukankan      html  css  js  c++  java
  • Linux基础入门之管理linux软件(rpm/yum)

    Linux软件包

    软件包分类

    源码包

    修改源代码 编译 安装 运行效率更高更 加稳定

    二进制包

    优点 管理简单

    缺点 不能修改源代码依赖性问题

        Redhat  centOS    rpm

        Debain  Ubuntu    deb

    RPM包命名

    name-version-release.arch.rpm                src.rpm 源码包

    名称-版本-发行版.平台.rpm

    version

    主版本号 软件有了重大改进

    次版本号 某个子功能发生重大变化

    修订号   修复了软件的一些bug调整了部分功能

     

    Release

    发行版本号 是源程序配置完成后编译制作rpm包的版本

     

    OS

    el6  RHEL 6.x(Red Hat Enterprise Linux)/CentOS 6.x

    fc20  Fedora

     

    硬件平台CPU

    硬件平台包括了:i386i486i586i686x86_64ppcsparcalpha

     

    主包

       bind-9.7.1-i586.el5.rpm

    子包

    bind-libs-9.7.1-i586.el5.rpm

    bind-utils-9.7.1-i586.el5.rpm

     

    查看Linux内核

    uname 查看linux操作系统版本和CPU类型

    -a, --all                     以如下次序输出所有信息。其中若-p -i 的探测结果不可知则被省略:

      -s, --kernel-name                 输出内核名称

      -n, --nodename                   输出网络节点上的主机名

      -r, --kernel-release            输出内核发行号

      -v, --kernel-version            输出内核版本

      -m, --machine                输出主机的硬件架构名称

      -p, --processor                   输出处理器类型或"unknown"

      -i, --hardware-platform           输出硬件平台或"unknown"

      -o, --operating-system            输出操作系统名称

    rpm管理

    Redhat Package Manager

    rpm 选项

         -i install  安装

         -U update)   升级软件

         -e erase  删除软件

         -q query   查询安装的软件

     

    -a   显示全部

    -h   显示安装的进度

    -v   显示安装详细信息

    -vv   显示更加详细的安装信息

    安装软件

    安装软件包 需要软件包的位置

    [root@WebServer ~]# rpm -ivh /mnt/cdrom/Packages/zsh-4.3.10-5.el6.x86_64.rpm

    [root@WebServer ~]# rpm -ivh /mnt/cdrom/Packages/nano-2.0.9-7.el6.x86_64.rpm

    在软件包所在目录下可以不指定路径

    [root@WebServer ~]# cd /mnt/cdrom/Packages/

    [root@WebServer Packages]# rpm -ivh traceroute-2.0.14-2.el6.x86_64.rpm

     

    --test     测试是否能够安装成功

    --force     如果软件包冲突 也强制安装

    --nodeps    不检测是否依赖其他软件  rpm -e dchp --nodeps  

    --noscripts  不执行任何安装脚本

    --nopre     不执行安装前的脚本

     

    查询软件

    rpm -q             查看软件包的全名

    rpm q pkgname

     

    rpm qa             列出所有安装过的包

    rpm qi             查看软件详细信息

    rpm -ql              查看软件生成的文件

    rpm –qc             查看配置文件位置

    rpm qf /bin/sh            可以查看文件是由哪个程序生成的

    rpm -q --scripts bash          查询软件包相关的脚本

     

    查询未安装的软件包会产生哪些文件

    rpm -qlp /mnt/cdrom/Packages/samba-3.6.9-151.el6.x86_64.rpm

    查看软件包详细信息

    rpm -qip /mnt/cdrom/Packages/samba-3.6.9-151.el6.x86_64.rpm

     

    粗略查询软件包名称包含ftp的软件

    [root@WebServer ~]# rpm -qa | grep "ftp"

     升级

    -U  upgrade 如果不存在老版本 就是全新安装

    -f  freshen 老版本必须存在

    [root@WebServer ~]# umount /dev/cdrom

    [root@WebServer ~]# mount /dev/cdrom /mnt/cdrom/

    [root@WebServer ~]# rpm -Uvh /mnt/cdrom/Packages/zsh-4.3.10-7.el6.x86_64.rpm

     

    [root@WebServer ~]# rpm -q zsh

    zsh-4.3.10-5.el6.x86_64

    zsh-4.3.10-7.el6.x86_64.rpm

    zsh-5.0.2-7.el7.x86_64.rpm

    软件升级不要跨操作系统主版本号

    删除软件

    -e  erase 删除

    rpm -e zsh

    校验

    安装软件会按功能放到不同的文件中

    /usr/bin        一些可运行文件

    /usr/lib       一些程序使用的动态函式库

    /etc          一些配置档放置的目录,例如 /etc/crontab

    /usr/share/doc   一些基本的软件使用手册与说明档

    /usr/share/man   一些 man page 文件

     

    软件相关的数据库

    [root@WebServer ~]# /var/lib/rpm

     

    如果软件的文件发生变化,会列出变化的文件

    [root@WebServer ~]# rpm -V vsftpd

    missing   c /etc/vsftpd/ftpusers  

    S.5....T.  c /etc/vsftpd/user_list

    SM5..UGT.  c /etc/vsftpd/vsftpd.conf

     

    提示代码的含义:

    S (file Size differs) 文件的容量大小是否被改变

    M (Mode differs) 文件的类型或文件的属性 (rwx) 是否被改变?如是否可运行等参数已被改变

    5 (MD5 sum differs) MD5 这一种指纹码的内容已经不同

    D (Device major/minor number mis-match) 装置的主/次代码已经改变

    L (readLink(2) path mis-match) Link 路径已被改变

    U (User ownership differs) 文件的所属人已被改变

    G (Group ownership differs) 文件的所属群组已被改变

    T (mTime differs) 文件的创建时间已被改变

    missing: 文件丢失

     

    软件数字签名

    对称加密  加密秘钥和解密秘钥是同一个秘钥  优点效率高 缺点 不适用在网络中传输秘钥 秘钥维护复杂

     

    非对称加密  加密秘钥和解密秘钥不是同一个秘钥  公钥和私钥

                公钥加密 必须使用私钥解密

                私钥加密 必须使用公钥解密

                缺点 加密效率低

                优点 公钥适合在网络中传递 秘钥维护简单

    数字签名    不能抵赖 确认来源 签名之后没更改过

     

    --nosignature 不检查签名

    --nodigest  不检查完整性

     

    只检测软件包完整性

    [root@WebServer ~]# rpm -K --nosignature

    /mnt/cdrom/Packages/traceroute-2.0.14-2.el6.x86_64.rpm

    /mnt/cdrom/Packages/traceroute-2.0.14-2.el6.x86_64.rpm: sha1 md5 OK

     

    查看Linux系统上红帽公司的公钥

    [root@WebServer ~]# ls /etc/pki/rpm-gpg/

    RPM-GPG-KEY-redhat-beta           RPM-GPG-KEY-redhat-legacy-release  RPM-GPG-KEY-redhat-release

    RPM-GPG-KEY-redhat-legacy-former  RPM-GPG-KEY-redhat-legacy-rhx

     

    导入redhat公钥到rpm数据库

    [root@WebServer ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

     

    只检测软件包签名

    [root@WebServer ~]# rpm -K --nodigest

    /mnt/cdrom/Packages/traceroute-2.0.14-2.el6.x86_64.rpm   

    /mnt/cdrom/Packages/traceroute-2.0.14-2.el6.x86_64.rpm: rsa (md5) pgp OK

     

    检查rpm软件包完整性和数字签名

    [root@WebServer ~]# rpm -K  /mnt/cdrom/Packages/traceroute-2.0.14-2.el6.x86_64.rpm

    /mnt/cdrom/Packages/traceroute-2.0.14-2.el6.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

     

    重建rpm数据库

    数据库文件遭到损害 重建数据库

    rpm  --rebuilddb 内容损坏

    rpm --initdb  初始化(数据库文件丢失

     

    yum命令介绍

    yum(全称为 Yellow dog Updater, Modified)是一个在FedoraRedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

    yum源全局设置

    定义共性配置信息yum仓库),主配置文件大多数情况不需要修改

    [root@WebServer ~]# cat /etc/yum.conf

    [main]

    cachedir=/var/cache/yum/$basearch/$releasever  #缓存目录

    keepcache=0       #是否保留本地缓存   0不保留

    debuglevel=2       #调试级别  

    logfile=/var/log/yum.log    #记录到日志  

    exactarch=1    #检查平台是否兼容  1检查

    obsoletes=1    #检查包是否废弃  1检查

    gpgcheck=1    #检查来源是否合法 需要有制作者的公钥信息  1检查

    plugins=1      #是否启用插件   1启用

    installonly_limit=3   #指明保留多少个内核包

     

    配置多个yum

    网络方式

      ftp  http

    本地yum方式

      Linux上一个文件夹

    查看配置好的yum

    [root@WebServer ~]# yum repolist

    yum

    [root@WebServer ~]# /etc/yum.repos.d/

    在该目录中所有的*.repo文件都是一个yum仓库一个文件可以有多个yum仓库

    配置本地源

    [rhel-source]

    name=Red Hat Enterprise Linux $releasever - $basearch - Source   #名称

    baseurl=file:///mnt/cdrom/Server    #路径

    #baseurl=file:///mnt/cdrom/

    enabled=1    #启用

    gpgcheck=0   #不检查数字签名

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release   #数字签名路径

    配置ftp

    [ftp-source]

    name=ftp-Server-source

    baseurl=ftp://192.168.80.66/Server

    enabled=0

    gpgcheck=0

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    配置http

    [web-source]

    name=Web-Server-source

    baseurl=http://192.168.80.100/Server

    enabled=1

    gpgcheck=1

    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

     

    需要配置Web站点属性

    application/octet-stream

    配置redhat使用centOS

    下载库配置文件

    http://mirrors.163.com/.help/CentOS6-Base-163.repo

    配置

    [base]

    name=CentOS-$releasever - Base - 163.com

    baseurl=http://mirrors.163.com/centos/6/os/x86_64/

    gpgcheck=1

    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

     

    [updates]

    name=CentOS-$releasever - Updates - 163.com

    baseurl=http://mirrors.163.com/centos/6/updates/x86_64/

    gpgcheck=1

    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

     

    [extras]

    name=CentOS-$releasever - Extras - 163.com

    baseurl=http://mirrors.163.com/centos/6/extras/x86_64/

    gpgcheck=1

    gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

     

    yum源的XML文件

    XML扩展标记语言 标记包的依赖关系

    yum源的xml文件存放在/var/cache/yum/

      Repomd.xml     记录下面三个文件的时间戳和校验和

      Primary.xml.gz   仓库所有rpm包和依赖关系都在这个文件

      Filelists.xml.gz   所有rpm包所包含的文件列表  加入rpm包查询

      Other.xml.gz     rpm包的额外信息 如change.log修改日志等

         Comps*.xml     包组定义 组的名称 那些包时必须安装 那些包可选

     

        Primary.xml.gz,  Filelists.xml.gz,  Other.xml.gz 需要下载到本地

     

     

     

    Yum命令管理软件包

    repolist

    [root@WebServer ~]# yum repolist       列出可用的软件仓库 yum

    [root@WebServer ~]# yum repolist all       列出全部yum源 可用和禁用

    clean

    yum全局配置文件

    [root@WebServer ~]# vim/etc/yum.conf

    [main]

    cachedir=/var/cache/yum/$basearch/$releasever

    keepcache=1   启用软件包缓存,默认不启用

    ...

    查看缓存的xml文件

    [root@WebServer ~]# ls /var/cache/yum/x86_64/6Server/rhel-ftp-source

    查看缓存的软件包

    [root@WebServer ~]# ls /var/cache/yum/x86_64/6Server/rhel-ftp-source/packages/

    清除缓存的xml文件和软件包

    [root@WebServer ~]# yum clean all

    只清除缓存的软件包

    [root@WebServer ~]# yum clean pack

     

    makecache

    软件仓库有问题时需要使用makecache下载缓存软件仓库yum)的元数据文件xml文件

    [root@learn ~]# yum makecache

    Loaded plugins: fastestmirror, security

    Loading mirror speeds from cached hostfile

    souce                          | 4.0 kB     00:00 ...

    souce/group_gz                  | 219 kB     00:00

    list

    列出软件仓库中可用的软件(优先查看本机软件仓库)

     

    [root@WebServer ~]# yum list

    进行模糊查找(查找部分)

    [root@WebServer ~]# yum list | grep yum

    info

    显示软件的详细信息

    [root@WebServer ~]# yum info php

    provides 

    用来搜索Linux已经安装的软件 或yum源中哪些软件会产生指定的文件

    [root@WebServer ~]# yum provides /etc/samba/smbusers

    [root@WebServer ~]# yum provides */nslookup

    install

    安装软件 只需要给出软件名称

    [root@WebServer ~]# yum install traceroute

    -y选项,自动确认

    安装过程中分析依赖关系后 直接安装

    [root@WebServer ~]# yum install -y dhcp

    check-update

    对比Linux已安装的软件和软件仓库中的软件 有哪些需要升级

    [root@WebServer ~]# yum check-update

    update

    更新软件

    [root@WebServer ~]# yum update -y samba

    升级软件

    [root@WebServer ~]# yum update samba

    erase

    删除软件

    [root@WebServer ~]# yum erase samba

    reinstall

    卸载现有的重新安装

    [root@WebServer ~]# yum reinstall -y php   

    localinstall

    指向本地的rpm,如果有依赖关系会自动从软件仓库中下载所依赖的软件

    yum localinstall /mnt/cdrom/Packages/bind-9.8.2-0.17.rc1.el6.x86_64.rpm

    --nogpgcheck 选项,安装软件时不检查签名(临时使用)

    [root@WebServer ~]# yum install --nogpgcheck mysql

     

    grouplist

    列出已安装的和所有可使用的软件组

    [root@WebServer ~]# yum grouplist

    groupinfo

    后面接groupname,则可了解该group内含有的所有组名称

    [root@WebServer ~]# yum groupinfo "X 窗口系统"

    [root@WebServer ~]# yum groupinfo 桌面

    groupinstall

    可以用来安装一整组的软件

    [root@WebServer ~]# yum groupinstall "X 窗口系统"

    [root@WebServer ~]# yum groupinstall 桌面

     

    图形界面下安装VMWareTools

    装载光盘-->挂载光盘-->创建临时文件夹-->把光盘内容解压到临时文件,--->打开临时文件执行./vmware-install.pl  -->  一路回车安装完成并重启系统,VMware tools生效。

    tar -xzvf /mnt/cdrom/VMwareTools-9.6.0-1294478.tar.gz

    ./vmware-install.pl

    groupupdate

    升级软件组

    [root@WebServer ~]# yum groupupdate php

    groupremove

    删除某个组

    [root@WebServer ~]# yum groupremove php

     

     

    自定义yum源

    安装createrepo软件

    创建自定义yum源目录

      mkdir /test

    拷贝软件到自定义yum源目录

      cp 软件 /test

    使用createrepo生成yum源依赖关系

      createrepo /test

    编辑自定义yum源配置文件

    vim /etc/yum.repos.d/loacl.repos

      baseul=fiel:///test

     

  • 相关阅读:
    初步使用redis
    redis配置文件介绍
    windows64位 redis安装 步骤
    敏感词过滤算法
    SpringBoot使用拦截器无效
    linux常用命令
    automation(一)
    JAVA的接口多态
    JAVA的多态(强制转换)
    JAVA的多态
  • 原文地址:https://www.cnblogs.com/pathping/p/7352960.html
Copyright © 2011-2022 走看看