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="\033[1;32m[\u@\h \W]#\033[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基础源

猜你喜欢

转载自www.cnblogs.com/tyhj-zxp/p/12673557.html