Linux程序包管理学习

在Linux中一些软件的安装我们用的最多的应该就是RPM包了当然还有一种安装方式是使用yum 其实yum一种rpm的管理工具它能很方便的帮我们安装我们所指定的软件也如果我们安装的软件依赖于其他的组件它能自动帮我们一并安装好,是不是非常好用,而rpm包就只能一个一个的安装了,那么rpm包是什么呢,简单来说它就是一个打包工具RPM Package Manager,把我们的软件打包成一个文件,里面包含了我们软件的所有的信息:二进制文件,库文件,配置文件,帮助文件等等.有了rpm可以让我们的软件安装更为便捷而今它也成为了一个Linux系统的公认标准了.接下来我们来说一下它的使用方式:

我们在系统上用rpm基本就是安装、卸载、升级、查询、校验、数据库维护

首先来说一下安装:

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

一般我们可以组合使用选项常见的有–ivh

-i(表示安装)-v(显示安装过程)-h(使用#显示进度条)这样可以直观看到我们软件的安装情况.

上图中都是rmp 包,其名称规律是name-VERSION-ARCH.rpm. 名称-版本号-平台

如果安装就直接使用比如: rpm -i php-5.3.3-38.el6.i686.rpm.我们运行一下

报错了意思是没有依赖关系需要:

libbz2.so.1 is
needed by php-5.3.3-38.el6.i686

libc.so.6
is needed by php-5.3.3-38.el6.i686  等等  …..

也就是我们上面提到的有因为依赖关系我们需要一个一个安装它需要谁我们就安装谁.但如果有个软件有A.B两个包我装A包提示要依赖B 包我装B包有提示我要A包怎么办这里就用到了安装选择的其他可选项: --nodeps:忽略依赖关系

.但忽略依赖关系意味着我们的软件会不正常或者不能工作所以尽量不要这么做或者事先查看安装顺序

rpm常用选项:

安装:

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

-v: verbose

-vv:

-h: 以#显示程序包管理执行进度

[install-options]

--test: 测试安装

--nodeps:忽略依赖关系;

--replacepkgs: 重新安装;

--nosignature: 不检查来源合法性;

--nodigest:不检查包完整性;

--noscipts:不执行程序包脚本片断;

升级:

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

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

upgrage:升级中的套件如果没有安装就安装

freeshen:升级中的套件如果没有就不安装

--oldpackage:降级;

--force: 强行升级;

查询:

rpm {-q|--query} [select-options]
[query-options]

[select-options]

-a: 所有包

-f: 查看指定的文件由哪个程序包安装生成

--whatprovides CAPABILITY:查询指由哪个包所提供;

--whatrequires CAPABILITY:查询哪个包所依赖;

[query-options]

--changelog:查询rpm包的changlog

-c: 查询程序的配置文件

-d: 查询程序的文档

-i: information

-l: 查看指定的程序包安装后生成的所有文件;

--scripts:程序包自带的脚本片断

-R: 查询指定的程序包所依赖的CAPABILITY;

--provides: 列出指定程序包所提供的CAPABILITY;

卸载:

rpm {-e|--erase} [--allmatches] [--nodeps]
[--noscripts]

[--notriggers] [--test] PACKAGE_NAME ...

校验:

rpm {-V|--verify}
[select-options] [verify-options]

然后我们在看一下yum的使用:

yum在你安装一个软件的时候它可以自动解决软件的依赖关系进行安装.这里引用网络上的介绍:

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

既然是从指定的服务器也可以是本地yum源自动下载centos安装好以后默认会设置几个yum源,我们可以根据需要自行设置.这里涉及到本地系统上的2个文件分别是 /etc/yum.conf:           为所有yum提供公共配置

/etc/yum.repos.d/源名称.repo:  为yum的指向提供配置

可以是用命令 yum repolist enabled 查看目前我们打开的yum源

repo文件中内容格式:

[repositoryID]

name=名称

baseurl=url1://xxx.xxx.xxx/path/torepository

enabled=1是启用0是不启用

gpgchek=检查来源合法性0不检查1检查

我们可以按照这样的格式添加一个yum源或者可以直接新建一个repo的文件来指定新的yum源

来通过一个简单的例子来看一下yum源的搭建和使用:

我把我的centos6光盘镜像挂载到系统上我想让我的光盘也是一个yum源首先我把光盘挂载到了/test下后面就很简单了我们新建一个repo的文件放到/etc/yum.repos.d/即可

之所以光盘能做yum源最重要的是它有一个repodata目录文件他把当前目录中的所有可用rpm都”读取”了一下并生成了组织关系这样我们在安装一个组件或软件的时候他才能自动帮我们处理关系并安装好,如果想试验可用:

createrepo [options]<directory>

用这个命令创建好一个repodata的目录文件就可以当做一个yum源来使用了.

接下来我们继续创建一个文件名为Centos-local.repo

vim /etc/yum.repos.d/CentOS-local.repo

添加内容如下:


[cdrom]

name=CDROM

baseurl=file:///test/

gpgchek=0

因为本地文件所以用file:/// 三个斜杠如果是网络上的可以使用ftp或者http的地址如ftp://server/rpm

文件保存退出后我们可以使用命令 yum makecache 或者直接使用yum repolist
enabled 来查看是否生效

列表里面有我们定义的CDROM后面也有包的数量说明已经构建成功了.如果我们有ftp或http服务器建立好我们可以共享到网络上面.

下面是yum的一些常用命令选项:

yum
[options] [command] [package ...]

显示yum源列表:

repolist [all|enabled|disabled] 默认显示所有enabled显示当前启用的yum源列表

显示程序包:

list

yum list [all | glob_exp1] [glob_exp2]
[...]

可以使用glob搜索

安装程序包:

yum install package1 [package2]

升级程序包:

update [package1] [package2] [...]

卸载指定程序包:

remove | erase package1 [package2]
[...]  如果卸载指定程序包其中依赖关系的包也会被卸载.

查看程序包的infomation:

info [...]

查看程序包特性:

provides | whatprovides feature1 [feature2]
[...]

清理本地缓存:

clean [ packages | metadata | expire-cache
| rpmdb | plugins | all ]

构建缓存:

makecache

搜索:

search string1 [string2] [...]

重新安装:

reinstall package1 [package2] [...]

降级安装:

downgrade package1 [package2] [...]

查看指定包所依赖的capability

deplist package1 [package2] [...]

查看yum事务历史:

history    
[info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

以上就是yum的使用方法.非常方便的一个工具

在Linux上除了以上两种安装方式还有一种编译安装的方式,就是我们从网上下载的源码包,通常是打包成一个压缩文档我们下载好以后解压缩进行编译安装,这种方式也比较普遍.其中安装过程大致分为3个步骤:

1,
./configure 为安装做准备,通常软件会检查系统对软件的支持情况有些是必须的,有些则可以忽略在这个步骤可以通过选项传递参数, 指定启用特性,安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile

2,  make 软件检查没有错误就开始根据makefile构建程序文件了

3,  make install 安装程序

在编译安装之前最好阅读一下里面的install文件或者readme文件这样我们能了解软件的安装过程和软件的作用默认或可选的功能等等.

此文只要为加深学习内容的印象对知识总结便以后查阅

时间: 2024-08-09 06:35:12

Linux程序包管理学习的相关文章

Linux学习37 Linux程序包管理介绍及应用

一.Linux程序包管理 1.API:Application Program Interface 2.ABI:Application Binary Interface :linux与unix的ABI是相同的但是与windows是不一样的 Unix-like ELF Windows: exe,msi 库级别的虚拟化: Linux:WinE模拟windows的运行环境 Windows:Cywin模拟linux的运行环境 3.系统级开发: C/C++ 4.应用级开发 java/Python/perl/

Linux程序包管理

Linux程序包管理 RPM包基础 RPM YUM 编译安装 概述 Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm.yum.源码编译来浅析Linux的程序包管理.首先,我们来看下本文的主要内容: - 程序包的命名- RPM: 程序包管理器    安装.卸载.升级.查询.校验.数据库维护      - YUM: RPM的前端程序    yum的配置文件     yum的常规操作:升级.检查.卸载.查看.包组管理     使用光盘当作本地yum仓库     yum的命令行选项及

Linux程序包管理及yum安装管理

Linux程序包管理: API:ApplicationProgramming Interface   应用编程接口 POSIX:Portable OS    遵循本协议的程序均可在不同系统间移植 程序编写完成后,执行所要经过的处理步骤: 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:直接调用.so共享对象实现 ABI:ApplicationBinary Interface  应用二进制接口 Windows与Linux所支持的可执行二进制

Linux程序包管理工具简介

一.Linux程序包管理器-RPM RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件.Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装.RPM 有五种操作模式,分别为:安装.卸载.升级.查询和验证. 1.RPM 安装操作 命令: rpm -i 需要安装的包文件名 例: rpm -i example.rpm 安装 example.rpm 包 rpm -iv example.rpm 安装

Linux程序包管理与初识磁盘

Linux 程序包管理 API:Application Binary Interface(应用程序的二进制接口) ABI:APPlication Program Inertface(应用程序的开发接口) Windows : exe,msi Windows与Linux不兼容 ELF:(Executale and Linkable Format):可执行可连接格式,linux运行格式 PE:(Portable  Executable)可移植可执格式Windows运行格式 库级别的虚拟化: 要想在Wi

Linux程序包管理总结

Linux程序包管理 相比于Windows系统,Linux的程序包的管理就没有那么简单了,当然在Linux系统中也有像Windows系统中EXE或者MSI安装包一样的安装包文件,可以直接实现进行程序包安装,但即是这样的程序包的安装也要比Windows复杂多了,当然,大家不要被我这两句话给唬到了,当你学过这课后,你会发现Linux的程序包管理其实也很简单的,同样你也会发现Linux的程序包管理比Windows的好玩儿多了. Linux中的程序包格式: .deb  源于debian系统的安装包格式

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

Linux程序包管理之rpm包管理

Linux程序包管理 软件包管理 功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装.升级.卸载.查询.校验.数据库维护. API:Application ProgramInterface应用程序接口: ABI:Application BinaryInterface应用二进制接口: Unix-like和linux在ABI层次是相同的 linux程序包:ELF格式: 但是与Windows相差甚远 windows程序包:exe,msi格式: API层次兼容不一定A

Linux程序包管理:RPM和YUM

Linux程序包管理:RPM和YUM   就像Window一样,我们安装了windows系统如果没有相应的应用软件,如OFFICE,IE,等各种软件,用户是无法使用计算机,linux 完成各种应用功能,也需要各种应用程序,所以程序包的管理就非常必要. Linux平台的内核功能:进程管理.内存管理.网络协议栈.驱动程序....             应用程序:              早期的linux程序包的组成部分:                二进制程序:/bin, /sbin,/ /u