linux之程序包安装

一、软件包组成:

软件包组成:(二进制程序、库文件、配置文件、帮助文件)

二进制程序文件:

存放路径:/bin;/sbin;/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/sbin;

/bin;/sbin:系统自身启动需要的二进制文件;

/usr/sbin;/usr/local/bin:系统启动后完成基本管理需要的二进制文件;

/usr/local/bin;/usr/local/sbin:第三方管理需要的二进制文件;

库文件:(也是可执行文件,但不能独立执行,需要调用执行)在程序中通常称为函数;

存放路径:/lib;/usr/lib;/usr/local/lib;

库文件分类:静态库(以.a结尾的文件)、动态库(以.so结尾的文件)

库文件配置路径:/etc/ld.so.conf;/etc/ld.so.conf.d/*.conf

配置文件:

存放路径:/etc

帮助文件:

帮助文件分类:手册(/usr/share/man);README;INSTALL;通常后两个都放在/usr/share/doc,

man的配置文件在/etc/man_db.conf(定义man去哪里找帮助文件)

二、linux程序包管理工具:

包管理工具应包含:文件清单、文件存放位置、软件功能说明、依赖关系(依赖其他程序包)

程序包管理工具数据库:追踪软件安装位置,便于卸载操作

软件包前端管理工具会自动查找、解决软件包之间的依赖关系,然后安装需要的软件包。

Debian :dpt;apt-get(软件包前端管理工具)

Redhat:rpm;yum(软件包前端管理工具)

suse:rpm

软件包安装方法:包管理工具安装、源代码编译安装、软件包管理器前端工具、通用二进制格式;

包管理工具安装:rpm实现的功能:打包、安装、查询、升级、校验、卸载等;

编译安装:将源代码编译成二进制格式文件;需提供环境(如:编译器:gcc,g++;库文件),

由于编译安装只能手动进行安装,为了方便管理(卸载、升级),一般安装到特定的文中,带来的问题:如找不到二进制文件执行(因为在环境变量中没有定义)、找不到库文件、找不到帮助手册(可以通过修改配置文件或使用命令:man -M /path来指定帮助文件路径)、头文件路径(/usr/include)。

三、软件包及源程序命名:

1、源程序命名:

name-version.tar.{gz | bz2 | xz}  (包名-版本号.后缀名)

其中的版本号组成:major.minor.release (主版本号.次版本号.发行号);主版本号一般是程序的重大改变,次版本号一般是程序部分功能发生改变,发型号一般是是bug修复,一次升级时要查看相应版本号。

如:bash-4.3.1.tar.xz

2、rpm包命名:

name-version-release.arch.rpm (包名-源程序版本号-打包版本号.平台.rpm;平台指主机架构如:i686,x86_64,amd64,ppc,noarch(表示与平台无关)) 此处的release是发行者打包的管理号,可能还包括所适用的操作系统(如:centos6);

而version也包含major.minor.release (主版本号.次版本号.发行号),解释同源程序的release;

如:bash-4.3.2-5.e16.x86_64.rpm  包名.源程序版本号.打包版本号及适用操作系统.平台.rpm

3、rpm分包命名:将某些功能做成独立的包,需要此功能才安装。

主包包名-分包包名--version-release.arch.rpm   一般分包会依赖于主包,也就是说安装分包必须安装主包;

主包:核心包;bind

分包:支包;bind-chroot

如:bind-chroot

4、程序包位置:

一般放在packet下

四、软件包获取及验证软件包:

红帽软件包第三方平台:epel,现在由fedora来维护;因此又叫fedroa-epel:

http://mirrors.sohu.com;这里的软件一般是系统光盘不带的;

http://rpmfind.net;用来搜rpm包的

http://rpm.pbone.net;用来搜rpm包的

rpm包验证机制:来源合法性、包的完整性;

gpg pgp:

redhat系列官方公钥存放位置:

[[email protected] ~]# ls /etc/pki/rpm-gpg/    //显示公钥文件

RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Debug-7  RPM-GPG-KEY-CentOS-Testing-7

[[email protected] ~]#

[[email protected] ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    //导入公钥

[[email protected] ~]# rpm -K zziplib-utils-0.13.62-5.el7.x86_64.rpm            //验证包来源合法

zziplib-utils-0.13.62-5.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

[[email protected] ~]#

五、rpm安装、卸载、

INSTALLING, UPGRADING, AND REMOVING PACKAGES:

1、rpm安装:  要指定安装文件的路径(从哪个文件安装)

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

install-options:

-v:显示详细信息;

-vv:显示更详细信息;

-h:以#号显示安装进度,一个#表示2%的进度

--nodeps:忽略依赖关系;注意:忽略依赖关系可能能安装软件包,但安装后不一定能正常使用;

--test:仅测试安装,但不安装

--replacepkgs:重新安装软件包,替换已安装包的所有文件;

常用组合:-ivh

如:

[[email protected] ~]# rpm -ivh /cdrom/Packages/zsh-5.0.2-14.el7.x86_64.rpm

[[email protected] ~]# rpm -ivh zziplib-utils-0.13.62-5.el7.x86_64.rpm

error: Failed dependencies:

libzzip-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

libzzipfseeko-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

libzzipmmapped-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

zziplib(x86-64) = 0.13.62-5.el7 is needed by zziplib-utils-0.13.62-5.el7.x86_64

[[email protected] ~]# rpm -ivh /cdrom/Packages/

注意:rpm安装包不会自动安装依赖的包;

[[email protected] ~]# rpm -ivh --replacepkgs /cdrom/Packages/zsh-5.0.2-14.el7.x86_64.rpm

2、rpm卸载:卸载只需要指包名;

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

--nodeps:忽略依赖关系;

--test:测试卸载

如:

[[email protected] ~]#  rpm -e zsh

[[email protected] ~]#

注意:在安装或卸载的时候,如果有写文件做了改动,rpm会将修改的文件cp一份作为备份,可以在警告信息中看到;waring。。。。。

3、rpm查询:

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

rpm -qa:查询所有的包   //不支持golbing

rpm -qa | grep ‘包名’  :查询特定的包

rpm -qi ‘包名’:查询软件包的摘要信息;

rpm -ql ‘包名’ :查询软件包安装产生的文件清单;

rpm -qc ‘包名’: 查询软件包安装后的配置文件清单;

rpm -qd ‘包名’:查询软件包安装后产生的帮助文档信息清单;

如:

[[email protected] ~]# rpm -q zsh

package zsh is not installed

[[email protected] ~]# rpm -qa | grep zsh

zsh-5.0.2-14.el7.x86_64

[[email protected] ~]# rpm -qi zsh    //查询软件包的相关摘要信息

[[email protected] ~]#  rpm -ql zsh  | less//查询zsh安装产生的文件清单,并分页显示;

QUERYING AND VERIFYING PACKAGES:

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

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

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

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

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

时间: 2024-08-09 22:24:06

linux之程序包安装的相关文章

谢烟客---------Linux之程序包管理yum使用和编译安装

yum命令及仓库创建与配置 YUM 原理 安装.卸载.查询.升级.检查,本地缓存.重装.降级.历史.获取帮助 仓库 变量.事务.URL.开销.镜像.元数据存储方式及组成 createrepo作用.命令.lftp命令 编译安装  目的 原理 开发工具及开发环境 编译后的处理 获取程序包源代码的途径 YUM Redhat二次发行版 Yellow Dog Linux,上使用的yum(Yellowdog Update Modifier),由yellow dog 研发 yum命令的工作原理 1.接收用户命

linux程序包安装、管理工具rpm、yum和源码安装

rpm包管理器: 应用程序要想成为机器可识别的二进制机器码,必须经过一下步骤: rpm包管理器的功能就是将这一切过程自动管理,成为易于普通人使用,可简化应用程序安装的工具. 人们将源码经过编译执行后将程序打包成rpm格式的包,所有使用rpm包安装时必须与提供rpm包的作者使用相同的操作系统平台环境.因此出现了不同的包管理器,rpm知识其中一个. rpm包的命名格式: rpm包命名方式:name-version-arch.rpm version :主版本号.次版本号.平台号 arch :表示平台,

Linux中程序包管理

u    无论我们使用哪种操作系统,仅使用操作系统自带的程序包一般都满足不了我们的使用需求,所以我们都需要安装程序.这篇博文我们来讲解一下在Linux操作系统中我们该如何安装程序. 本篇文章会涉及rpm管理程序包.yum管理程序包.yum仓库的指定.自己编译源码安装程序.简要介绍一下该如何自己建立一个yum仓库给其他主机提供程序包. 一.rpm管理程序包 (1)如何获取安装包 1)系统发行版的光盘或者官方的文件服务器(或者镜像站点): http://mirrors.aliyun.com/ htt

Linux系统程序包的管理

一.rpm:是通过预先编译并且打包成为RPM格式的,有以下有点: 1.不需要编译:RPM含以及编译过的程序与配置文件等数据 2.安装前会检测系统的硬盘容量.操作系统版本等,可以避免错误安装. 3.自身提供软件版本信息.存在依赖关系的相关软件信息.软件用途说明等便于使用者了解该软件 4.管理方式使用数据库记录RPM的相关参数,便于升级.删除.查询和验证. 缺点: 不能很好的解决存在依赖关系的相关软件 rpm包命名格式: 软件名称-版本信息-释出版本.支持的操作平台.rpm 例如: bash-4.2

Linux系统程序包管理

Linux程序包管理 API:Application Program Interface ABI:Application Binary INnterface Unix-like,系统上的二级制格式的应用程序文件格式为 ELF Windows系统的二级制格式的应用程序文件格式为: exe,msi 库级别的虚拟化: Linux:WinE,可以实现在Linux系统上运行Windows的二进制可执行程序 Windows:Cywin,可以实现在Windows系统上运行Linux的位二进制可执行程序 各种编

linux之程序包管理器(rpm)

linux下的程序包可支持多种工具编写的,如C.C++.PERL等. 但是这种高级语言编写出来的代码是我们人能看懂的,但是计算机是看不懂的,那么计算机怎么执行,怎么了解人要它做什么呢? 这就需要我们做一些转换了,把人能读懂的语言让机器也能识别,这个过程就是由编译器完成的,通常是吧代码语言转换成二进制语言. 过程:预处理.编译.汇编.链接 一个程序的运行大部分时间是离不开库的. 什么是库呢?库也是一种程序,只不过与其他程序不同,库没有执行入口,不能独立运行,只能被其他独立运行的程序调用的时候才能执

Linux的程序包管理器(上)——rpm详解

在使用Linux操作系统的过程中,我们需要的一些服务(例如Nginx)并没有提供,需要用户自行安装相应的程序包,才能使用相应的服务.本文以CentOS6.6为例,分三小节为读者朋友们尽可能详细的讲解rpm.yum以及程序包的编译安装三种程序包的管理方法. rpm rpm包管理工具是Red Hat公司贡献的一款rpm程序包管理器,在RHEL.CentOS.Fedora.SUSE等主流发行版本中,被广泛使用. rpm包管理工具可用于安装,升级,卸载,重新安装程序:也可以用于查询当前系统上安装了哪些程

linux下程序包管理

我是一个老实人从来不说实话,我是一个好人从来不说真话,学习linux有段时间了,太高深的东西还不懂,就写一下最近学习的程序包管理吧. 大家都知道在我们学习linux主要是搞运维的,那么我们每天上班的时候就避免不了跟程序包打交道,你不信啊?反正我上班的时候领导总是在我不经意的抬头瞬间给我抛一个媚眼,我立马就领悟了领导的意思,有活要干了,最好不是服务器挂了老天保佑. 有时候我们需要在系统上安装某个软件或者服务(就是程序包),可能需要现在本地磁盘上查一下有没有这些程序包,有的话我们可以直接使用rpm

mysql之通用二进制格式程序包安装

可以到mysql官网也可以到开源镜像站下载安装文件 第一步:为增强mysql数据库空间拓展性,创建lv卷 [[email protected] pub]# pvcreate /dev/sdb{5,6} [[email protected] pub]# vgcreate myvg /dev/sdb{5,6} [[email protected] pub]# vgs VG   #PV #LV #SN Attr   VSize   VFree myvg   2   0   0 wz--n- 200.0