zoukankan      html  css  js  c++  java
  • linux 挂载光盘,rmp,yum

    挂载

    首先准备工作,把光盘加载到光驱中

    创建要挂载的目录

    $ mkdir -p /mnt/cdrom (目录名称随意)

    执行mount挂载命令(mount 参数1:要挂载的源,参数2:要挂载的目标路径)

    $ mount /dev/cdrom  /mnt/cdrom(挂载光盘镜像)

    $ mount 查看挂载信息,如下,可以看到光盘已经挂载到了 /mnt/cdrom 目录

    需说明一下,/dev/cdrom 是/dev/sr0的软连接,如果直接挂载/dev/sr0 (命令:mout /dev/sr0   /mnt/cdrom )效果也是一样的,这里解释一下挂载源显示不一致的问题。

    切换到目录 /mnt/cdrom目录,查看里面的挂载的光盘信息

     卸载挂载的光盘镜像

    [root@localhost /]# umount /dev/sr0

    这时再查看/mnt/cdrom,什么也没有

     重新挂载,会看到内容又可以看到了

     进入Packages目录,会看到光盘里所有的rpm安装包,注意,这里显示的是完整的rpm软件包名称,如:abattis-cantarell-fonts-0.0.16-3.el7.noarch.rpm

    如果我们要安装某个rpm软件,直接将包拷贝到放置的目录里,然后执行rpm -ivh 软件包名称

    如:rpm -ivh  abattis-cantarell-fonts-0.0.16-3.el7.noarch.rpm

    到此,挂载光盘,安装里面已有的rpm软件已经完成。

    RPM

    RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

    rpm 安装包
    二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

    常用命令组合:

    -ivh:安装显示安装进度--install--verbose--hash
    -Uvh:升级软件包--Update;
    -qpl:列出RPM软件包内的文件信息[Query Package list];
    -qpi:列出RPM软件包的描述信息[Query Package install package(s)];
    -qf:查找指定文件属于哪个RPM软件包[Query File];
    -Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
    -e:删除包
    rpm -q samba //查询程序是否安装
    
    rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度
    rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //指定安装目录
    
    rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;
    rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本
    
    rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd*
    rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录
    
    rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息
    rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
    rpm -qpR file.rpm       #[查看包]依赖关系
    rpm2cpio file.rpm |cpio -div    #[抽出文件]
    
    rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash
    rpm -ivh
    
    rpm -Uvh file.rpm    #[升级一个rpm]--upgrade
    rpm -e file.rpm      #[删除一个rpm包]--erase

    常用参数:

    Install/Upgrade/Erase options:

    -i, --install                     install package(s)
    -v, --verbose                     provide more detailed output
    -h, --hash                        print hash marks as package installs (good with -v)
    -e, --erase                       erase (uninstall) package
    -U, --upgrade=<packagefile>+      upgrade package(s)
    --replacepkge                    无论软件包是否已被安装,都强行安装软件包
    --test                            安装测试,并不实际安装
    --nodeps                          忽略软件包的依赖关系强行安装
    --force                           忽略软件包及文件的冲突
    
    Query options (with -q or --query):
    -a, --all                         query/verify all packages
    -p, --package                     query/verify a package file
    -l, --list                        list files in package
    -d, --docfiles                    list all documentation files
    -f, --file                        query/verify package(s) owning file

    RPM包名,由“-”、“.”构成:软件名称、版本信息、版本号、运行平台

    RPM包常用安装位置说明

    /etc/                   配置文件安装目录

    /usr/bin/               可执行的命令安装目录

    /usr/lib/                程序所使用的函数库保存位置

    /usr/share/doc/          基本的软件使用手册保存位置

    /usr/share/man/          帮助文件保存

    RPM命令

    对已安装软件信息的查询

    rpm -qa                             查询已安装的软件

    rpm -qa |grep xxx 软件名  查询过滤某一个安装的软件

    rpm -ql 软件名                   查询已安装的软件包的安装信息

    rpm -qf 文件名绝对路径     查看文件来源的安装包

    实战:查看某个命令,是依赖哪个rpm安装包,如ls命令
    [ linux 系统中的命令同windows 一样,通常是一些可执行文件,有时也存在一些可执行脚本。查看某个命令的可执行文件绝对路径用which 命令,如果which ls ; 如果继续查看ls命令是安装了那个软件产生的,则可以用rpm
    -qf 文件名绝对路径来查看 ]

    软件名:rpm包去除平台信息和后缀信息

    rpm -qi 软件名                        查询一个已安装软件包的信息

    rpm -qc 软件名                        查看已安装软件的配置文件

    rpm -qd 软件名                        查看已安装软件的文档安装位置

    rpm -qR 软件名                        查看已安装软件依赖包和文件

    对未安装软件信息的查询

    rpm -qpi rpm文件                        查看一个软件包的用途和版本信息

    rpm -qpl rpm文件                        查看一个软件包所包含的文件

    rpm -qpd rpm文件                        查看软件包的文档所在位置

    rpm -qpc rpm文件                        查看软件包的配置文件

    rpm -qpR rpm文件                        查看软件包的依赖关系

    软件包的安装、升级、删除

    rpm -ivh rpm文件                        安装rpm包

    rpm -Uvh rpm文件                          更新rpm包

    rpm -e 软件名                            删除rpm包

    rpm -e 软件名 --nodeps                    不管依赖关系,强制删除软件

    rpm --import 签名文件                    导入签名

    rpm --import RPM-GPG-KEY

    yum

    创建yum仓库有两种方法:参考文章 https://blog.51cto.com/13406057/2434605?source=dra

    第一是直接使用光盘镜像,这种方法仅适合本机使用,在没有联网的情况可使用

    第二种是创建网络yum仓库,通过互联网上的阿里云,清华,163等来实现。

    创建yum仓库配置格式:

    
    
    [repo ID] :仓库的id
    
    name=[name] :仓库名称,可以看作是描述信息
    
    baseurl=url://... :仓库的地址,有以下几种
    
    file:// :本地路径地址
    
    http:// :网络路径地址
    
    https:// :安全的网络路径地址
    
    ftp:// :基于ftp服务的网络路径地址
    
    gpgcheck={0|1} :是否检查合法性,0表示不检查,1表示检查,默认就是1
    
    enabled={0|1} :是否启用仓库,默认为启用,0位不启用
    
    gpgkey=URL :公钥地址

    创建本地光盘源使用例子:

    如上我们已经挂载了光盘镜像,则可以把/etc/yum.repos.d/ 目录中的其他yum源配置文件xxx.repo删除,再随便起一个yum源配置文件的名称,如cd.repo,配置内容如下:

    [repo_ id] #随便写,唯一就行
    name
    =repo_ name #随便写,好辨认就行 enabled=1 gpgcheck=0
    #配置源路径为光盘挂载的路径,如果是网络上的源,如果ftp服务器,web服务器,则这里填写ftp://xx或者http://xx,就是第二种配置方式
    baseurl=file:///mnt/cdrom

    第一种方式配置完成。

    第二种方式采用阿里云yum源

    直接参考阿里云文档即可,这里不再细述。

    https://developer.aliyun.com/mirror/centos

    https://developer.aliyun.com/mirror/epel

    查看系统可用的yum源

    yum repolist enabled

    使用yum安装软件

    例如:安装tree,ftp,lftp,telnet等包。
    yum安装可以多个包同时进行安装

    [root@centos6 yum.repos.d]#yum install tree ftp lftp telnet
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Install Process
    Determining fastest mirrors
    Resolving Dependencies
    --> Running transaction check
    ---> Package ftp.x86_64 0:0.17-54.el6 will be installed
    ---> Package lftp.x86_64 0:4.0.9-14.el6 will be installed
    ---> Package telnet.x86_64 1:0.17-48.el6 will be installed
    ---> Package tree.x86_64 0:1.5.3-3.el6 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ===============================================================================
     Package         Arch            Version                   Repository     Size
    ===============================================================================
    Installing:
     ftp             x86_64          0.17-54.el6               base           58 k
     lftp            x86_64          4.0.9-14.el6              base          755 k
     telnet          x86_64          1:0.17-48.el6             base           58 k
     tree            x86_64          1.5.3-3.el6               base           36 k
    
    Transaction Summary
    ===============================================================================
    Install       4 Package(s)
    
    Total download size: 907 k
    Installed size: 2.8 M
    Is this ok [y/N]: y
    Downloading Packages:
    -------------------------------------------------------------------------------
    Total                                           24 MB/s | 907 kB     00:00     
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
    Warning: RPMDB altered outside of yum.
      Installing : lftp-4.0.9-14.el6.x86_64                                    1/4 
      Installing : ftp-0.17-54.el6.x86_64                                      2/4 
      Installing : tree-1.5.3-3.el6.x86_64                                     3/4 
      Installing : 1:telnet-0.17-48.el6.x86_64                                 4/4 
      Verifying  : 1:telnet-0.17-48.el6.x86_64                                 1/4 
      Verifying  : tree-1.5.3-3.el6.x86_64                                     2/4 
      Verifying  : ftp-0.17-54.el6.x86_64                                      3/4 
      Verifying  : lftp-4.0.9-14.el6.x86_64                                    4/4 
    
    Installed:
      ftp.x86_64 0:0.17-54.el6               lftp.x86_64 0:4.0.9-14.el6           
      telnet.x86_64 1:0.17-48.el6            tree.x86_64 0:1.5.3-3.el6            
    
    Complete!

    编写系统初始化脚本reset.sh,包括别名,提示符颜色,yum仓库配置文件;

    #/bin/bash
    
    echo "alias cdnet='cd /etc/sysconfig/network-script/'" >> /root/.vimrc
    
    echo 'PS1="33[1;32m[u@h W]#33[0m"' >> /etc/profile.d/env.sh
    
    cat > /etc/yum.repos.d/centos.repo << EOF
    
        [base]
    
        name=base
    
        baseurl=file:///misc/cd/
    
        gpgcheck=0
    
        [epel]
    
        name=epel
    
        baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
    
        gpgcheck=0
    
    EOF

    yum常用命令

    yum缓存信息

    yum clean packages                       清除缓存的rpm包文件

    yum clean headers                         清除缓存的rpm头文件

    yum clean old headers                    清除缓存中旧的头文件

    yum clean all                                   清除缓存中旧的rpm头文件和包文件

    查看系统可用的yum源:

    yum repolist enabled

    安装一个rpm包:

    yum install [-y][软件名]   #默认安装最新版的

    yum install [-y][rpm软件包名]   #因为指定了完整包名,所以就是安装特定版本的

    卸载一个rpm包:

    yum remove [-y][rpm软件名] 或者  yum remove [-y][rpm软件包名] 

    查看可以更新的软件包:

    yum check-update                         

    升级一个rpm包:

    yum update [-y][rpm软件名] 或者[rpm软件包名] 

    查询软件包信息

    yum search "firefox"              在yum源中搜索匹配特定字符的rpm包,软件名和描述匹配到的都会被搜索列出来          

    yum provides "firefox"             反查询文件包含在哪个rpm包里,与 rpm -qf  '文件名'  功能类似。另外,yum provides  xx, xx如果是文件的话需要全路径,命令的话直接查命令就行,如下的yum provides ls 和 yum provides /usr/bin/ls  都是可以查出ls命令来自安装的哪个rpm包。

    yum list                                  列出资源库中所有可以安装或更新的rpm包

    yum list firefox*                     列出资源库中可以安装、可以更新、已安装的指定rpm包

    yum list update                        列出资源库中可以更新的rpm包

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

    yum list extras                         列出已安装但不包含在资源库中rpm包

    yum info                                列出资源库中所有可以安装或更新的rpm包信息

    yum info firefox*                       列出资源库可以安装或更新的指定的rpm的信息

    yum info update                         列出资源库中可以更新的rpm包信息

    yum info installed                      列出已安装的所有rpm包信息

    yum info extras                         列出已安装到时不包含在资源库中rpm包信息

    yum grouplist                                    列出组包

    yum groupinstall 软件组名                     

    yum groupremove 

    yum 命令支持模糊匹配,在安装,卸载,更新时,可以用模糊的软件名

    安装多个类似软件时
    yum -y install httpd*
    安装多个非类似软件时
    yum -y install httpd php php-gd mysql

    卸载一个软件时 
    yum -y remove httpd
    卸载多个相类似的软件
    yum -y remove httpd*
    卸载多个非类似软件时
    yum -y remove httpd php php-gd mysql

    yum安装特定版本的rpm包            

    yum默认都是安装最新版的软件,这样可能会出一些问题,或者我们希望yum安装指定(特定)版本(旧版本)软件包.所以,就顺带分享yum安装指定(特定)版本(旧版本)软件包的方法。

    过程如下:
    假设这里是我们想安装的是prce ,输入:
    #yum         list          prce
    输出:
    pcre-7.8-6.el6.i686:Perl-compatibleregularexpressionlibrary
    pcre-7.8-6.el6.x86_64:Perl-compatibleregularexpressionlibrary
    pcre-7.8-6.el6.x86_64:Perl-compatibleregularexpressionlibrary

    找到你要安装的版本的完整的名字,这里安装pcre-7.8-6.el6.i686,输入:
    #yum  install  pcre-7.8-6.el6.i686 -y
    安装完后,就是检查pcre的版本了,输入:
    # rpm -qa | grep pcre
    就可以看到你安装的版本是不是你要的了。

    yum 解决依赖的原理

    YUM 解决依赖关系问题,自动下载软件包。yum是基于C/S架构。C指的是客户端, S指的是服务器,想ftp,http,file、关于yum为什么能解决依赖关系:所有的Yum 源里面都有repodata,它里面是有XML格式文件,里面有说明需要什么包。例如上堂课实验的:mysql-server  rpm 需要:perl-DBI ,python,或者是php等等包。


    将yum源更新为阿里云的

    参考下面两篇阿里云官方文档即可:

    https://developer.aliyun.com/mirror/centos

    https://developer.aliyun.com/mirror/epel

    关于yum源的两个常用命令

    $ yum clean all     清除本地yum的缓存
    $ yum makecache     把源服务器的包信息下载到本地电脑缓存起来,makecache建立一个包头信息及依赖关系缓存,在不联网的情况下一样可以search某包,
    查看相关依赖信息等。
    但是,这里下载的并非完整的包到本地,安装还是需要联网的。
            
    验证步骤:
    第一步:
    断网,清除全部缓存 yum clean all, 查询httpd包情况,会发现报错,尝试联网查询

     第二步:联网,建立缓存,yum makecahe

     第三步:断网,查询httpd包情况,可以看到可以正常查询

     第四步安装httpd,会发现yum依然需要去联网,去下载httpd的包。这里因为是断网状态,所以下载不成功。这也证明了yum makecache不是把完整的包缓存到本地的。

     第五步:联网,继续安装httpd,发现开始正常下载httpd包及依赖包,最后顺利安装成功

     第六步:查看httpd的安装情况,提示已经安装,@base说明来自base基础源

  • 相关阅读:
    409. Longest Palindrome(计算一组字符集合可以组成的回文字符串的最大长度)
    242. Valid Anagram(两个字符串包含的字符是否完全相同)
    17. Letter Combinations of a Phone Number(电话号码的字母组合)
    模块XML真垃圾
    数据库是什么
    python项目开发规范
    面向对象之类的成员
    面向对象
    模块之 import os 模块一
    模块之序列化 import json
  • 原文地址:https://www.cnblogs.com/tyhj-zxp/p/12673557.html
Copyright © 2011-2022 走看看