linux rpm 和 yum

查看linux机器是32位还是64位的方法:

file /sbin/init 或者 file /bin/ls

在这里插入图片描述
如果显示 64-bit 则为64位;
如果显示为32 bit 则为32bit;

uname -a

在这里插入图片描述
x86_64表示64位机器

uname -a
Linux pmx0**.**.**    2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux
i686表示32位机器
i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持.

备注:

  1. i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu.
    intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,Pentium D系列
  2. X86_64 适用于intel的Core 2 Duo, Centrino Core 2 Duo, and Xeon 和AMD Athlon64/x2, Sempron64/x2, Duron64等采用X86架构的64位cpu.

getconf LONG_BIT

在32位和64位机器上运行如下命令,结果如下:
在这里插入图片描述

RPM软件安装

rpm 只要是用来安装本地安装包的

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”
rpm 执行安装包
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

rpm is a powerful Package Manager, which can be used to build, install, query, verify, update, and erase individual software packages. A package consists of an archive
of files and meta-data used to install and erase the archive files. The meta-data includes helper scripts, file attributes, and descriptive information about the pack‐
age. Packages come in two varieties: binary packages, used to encapsulate software to be installed, and source packages, containing the source code and recipe necessary
to produce binary packages.
rpm是一个功能强大的包管理器,可用于构建、安装、查询、验证、更新和删除单个软件包。
包由存档文件组成 用于安装和删除存档文件的文件和元数据。
元数据包括辅助脚本、文件属性和包‐的描述信息的年龄。
包有两种:二进制包(用于封装要安装的软件)和源代码包(包含所需的源代码和配方)用于生成二进制包。

rpm二进制包的安装

使用网易163的源
32位系统的RPM安装包下载地址
http://mirrors.163.com/centos/6/os/i386/Packages/
64位系统的RPM安装包的下载地址
http://mirrors.163.com/centos/6/os/x86_64/Packages/
下载好之后 使用rpm -ivh xxx.rpm命令安装就即可
在这里插入图片描述

-ivh:安装显示安装进度–install–verbose–hash

 rpm -ivh ConsoleKit-0.4.1-6.el6.x86_64.rpm 

报错 权限不够
在这里插入图片描述

sudo rpm -ivh ConsoleKit-0.4.1-6.el6.x86_64.rpm 

报错
在这里插入图片描述
解决
https://blog.csdn.net/wkywj1/article/details/39449851
sudo命令可以让你以root身份执行命令,来完成一些我们这个帐号完成不了的任务。
其实并非所有用户都能够执行sudo,因为有权限的用户都在/etc/sudoers中呢。
首先进入root模式,su,然后输入密码。
通过编辑器来打开/etc/sudoers,或者直接使用命令visudo来搞定这件事情。
打开sudoers后,像如下那样加上自己的帐号保存后就可以了。
在这里插入图片描述
然后 :wq! 强制保存退出
再次执行

sudo rpm -ivh ConsoleKit-0.4.1-6.el6.x86_64.rpm 

在这里插入图片描述

安装参数 --force 即使覆盖属于其它包的文件也强迫安装

在这里插入图片描述
–nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

官方实例

INSTALL AND UPGRADE OPTIONS
       In  these  options,  PACKAGE_FILE can be either rpm binary file or ASCII package manifest (see PACKAGE SELECTION OPTIONS), and may be specified as an ftp or http URL, in
       which case the package will be downloaded before being installed. See FTP/HTTP OPTIONS for information on rpm's internal ftp and http client support.
       在这些选项中,PACKAGE_FILE可以是rpm二进制文件或ASCII包清单(请参阅包选择选项),也可以指定为ftp或http URL
       在这种情况下,软件包将在安装之前下载。有关rpm的内部FTP和HTTP客户机支持的信息,请参阅FTP/HTTP选项。

   The general form of an rpm install command is 
   rpm安装命令的一般形式是

   rpm {-i|--install} [install-options] PACKAGE_FILE ...

   This installs a new package.

   The general form of an rpm upgrade command is
   rpm升级命令的一般形式是

   rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

   This upgrades or installs the package currently installed to a newer version.  This is the same as install, except all other version(s) of the package are removed  after
   the new package is installed.
   此操作将当前安装的包升级或安装到新版本。这与安装相同,只是包的所有其他版本在安装之后都被删除安装了新包。

   rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

   This will upgrade packages, but only ones for which an earlier version is installed.
   这将升级包,但只升级安装了较早版本的包。

   The general form of an rpm reinstall command is
   rpm重新安装命令的一般形式是

   rpm {--reinstall} [install-options] PACKAGE_FILE ...

   This reinstalls a previously installed package.
   这将重新安装以前安装的包。

   --test Do not install the package, simply check for and report potential conflicts.

-Uvh:升级软件包–Update

在这里插入图片描述
-qpl:列出RPM软件包内的文件信息[Query Package list];

-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

-q 查询

查询一个包是否被安装

rpm -q < rpm package name>
在这里插入图片描述

得到被安装的包的信息

rpm -qi < rpm package name>
在这里插入图片描述

列出该包中有哪些文件

-i, --info
              Display   package  information,  including  name,  version,  and
              description.  This uses the --queryformat if one was specified.

rpm -ql < rpm package name>
在这里插入图片描述

列出服务器上的一个文件属于哪一个RPM包

  -f, --file FILE
              Query package owning FILE.
              查询包所属文件。

rpm -qf
在这里插入图片描述

列出所有被安装的rpm package

 -a, --all
              Query all installed packages.

rpm -qa
在这里插入图片描述

列出一个未被安装进系统的RPM包文件中包含有哪些文件?

  -l, --list
              List files in package.

rpm -qilp < rpm package name>

解压RPM包

有时我们需要RPM包中的某个文件,如何解压RPM包呢?
RPM包括是使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:

rpm2cpio xxx.rpm | cpio -div

在这里插入图片描述

卸载包 rpm -e

在这里插入图片描述
以卸载ConsoleKit为例

 rpm -qa|grep ConsoleKit 

在这里插入图片描述
说明: rpm -qa|grep ConsoleKit 命令是为了把ConsoleKit相关的包都列出来,我上面的例子是Linux默认安装rpm软件包列表,如果是别的Linux版本列出来的列表有可能会不一样,不过不用担心,不管是什么,卸载都从最下面的一个包开始,直到卸载掉第一个为止。
(一般没有必要带版本号,如可以直接写成rpm -e ConsoleKit)

sudo rpm -e ConsoleKit--nodeps

注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包就可以了。
如果实在有卸载不掉的包,可以加—nodeps这个参数来卸载,

在线安装

RPM管理包管理器支持网络安装和查询;

rpm 参数 rpm包文件的http或者ftp的地址
sudo rpm -qpi http://mirrors.163.com/centos/6/os/x86_64/Packages/ConsoleKit-0.4.1-6.el6.x86_64.rpm

sudo rpm -ivh http://mirrors.163.com/centos/6/os/x86_64/Packages/ConsoleKit-0.4.1-6.el6.x86_64.rpm

yum

转自https://www.w3cschool.cn/linux/linux-yum.html

yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum常用命令

1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search <keyword>
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers

实例 1 安装pam-devel / yum install pam-devel

[root@www ~]# yum install pam-devel
Setting up Install Process
Parsing package install arguments
Resolving Dependencies  <==先检查软件的属性相依问题 --> Running transaction check
---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be updated
--> Processing Dependency: pam = 0.99.6.2-4.el5 for package: pam-devel
--> Running transaction check
---> Package pam.i386 0:0.99.6.2-4.el5 set to be updated
filelists.xml.gz          100% |=========================| 1.6 MB    00:05
filelists.xml.gz          100% |=========================| 138 kB    00:00
-> Finished Dependency Resolution
……(省略)

实例 2 移除 pam-devel / yum remove pam-devel

[root@www ~]# yum remove pam-devel
Setting up Remove Process
Resolving Dependencies  <==同样的,先解决属性相依的问题 --> Running transaction check
---> Package pam-devel.i386 0:0.99.6.2-4.el5 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Removing:
 pam-devel               i386       0.99.6.2-4.el5   installed         495 k

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       0 Package(s)
Remove       1 Package(s)  <==还好,并没有属性相依的问题,单纯移除一个软件  Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction   Erasing   : pam-devel                    ######################### [1/1]  Removed: pam-devel.i386 0:0.99.6.2-4.el5 Complete! 

实例 3 利用 yum 的功能,找出以 pam 为开头的软件名称有哪些?

[root@www ~]# yum list pam*
Installed Packages
pam.i386                  0.99.6.2-3.27.el5      installed
pam_ccreds.i386           3-5                    installed
pam_krb5.i386             2.2.14-1               installed
pam_passwdqc.i386         1.0.2-1.2.2            installed
pam_pkcs11.i386           0.5.3-23               installed
pam_smb.i386              1.1.7-7.2.1            installed
Available Packages <==底下则是『可升级』的或『未安装』的 pam.i386                  0.99.6.2-4.el5         base pam-devel.i386            0.99.6.2-4.el5         base pam_krb5.i386             2.2.14-10              base 

比如 yum list tomcat

列出软件包的依赖

列出软件包的依赖 (以 tomcat 为例)
yum deplist tomcat

国内 yum 源

网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。
将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。

安装步骤
首先备份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份)

CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
运行以下命令生成缓存

yum clean all
yum makecache

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决
网上说好像是网易的用不了,必须用中科大的

中科大的yum源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
安装好以后重新运行上面两条命令生成缓存
在这里插入图片描述
除了网易之外,国内还有其他不错的yum源,比如中科大和搜狐。
sohu的yum源安装方法查看: http://mirrors.sohu.com/help/centos.html

其他

http://rpmfind.net/linux/rpm2html/

yum –y install 软件(当安装过程提示选择全部为"yes")

yum的一切信息都存储在一个叫yum.reops.d目录下的配置文件中,通常位于/etc/yum.reops.d目录下。

在这个目录下面有很多文件,都是.repo结尾的,repo文件是yum源(也就是软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!

进入/etc/yum.repo.d目录下,
vi CentOS-Base.repo
在这里插入图片描述
[extras]这个表示的是名称,—>yum的ID,必须唯一,本地有多个yum源的时候,这里必须是唯一的
name=CentOS-$releasever - Base ----->具体的yum源名字,其实相当于对它的描述描述信息 $releasever你可以使用这个变量参考红帽企业Linux发行版,也就是说表示当前发行版的大版本号。
baseurl是镜像服务器地址,只能写具体的确定地址。下面的例子中,只能有一个baseurl,但里面可以包含多个url

mirrorlist是镜像服务器的地址列表,里面有很多的服务器地址。这里有一个变量 a r c h , c p u 体 系 , 还 有 一 个 变 量 : arch,cpu体系,还有一个变量: archcpubasearch,cpu的基本体系组
baseurl和mirrorlist都是指向yum源的地址,不同点是包含地址的多少。你若自己写的话,我们一般只写一个地址,直接用baseurl就行
gpgcheck=0 ---->要不要验证呢,取消验证。1,使用公钥检验rpm的正确性。
gpgcheck若是1将对下载的rpm将进行gpg的校验,校验密钥就是gpgkey,一般自己的yum源是不需要检测的。gpgcheck=0,那么gpgkey就可以不填写

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=1  这个为1表示启用,0为关闭
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值