程序包管理:rpm、yum以及(make)源代码编译安装

程序包管理:rpmyum以及(make)源代码编译安装

Linux上安装程序一般都有三种方法:源代码编译安装,rpm包安装和rpm包的前端安装yum, (rpm,和yum程序包管理器是针对CentOS6平台的)

程序包管理方式都大同小异:  源代码–>目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–>组织称为一个或者几个包文件;包含的功能:安装、升级、卸载、修复、查询、校验。

程序包的命名方式: 源代码:NAME-VERSION.tar.gz VERSION:major.minor.releaserpm包:NAME-VERSION-release.os.arch.rpm; VERSION:major.minor.release

第一:源代码编译安装

一般源代码都是打包了的文件格式有:*.tar.gz,*.tar.bz2,*.tar.xz等等

步骤:

1), 解压包,tar  -zvxf|jvxf|Jvxf  PACKAGE; 可以不用指定解压方式

2), 切换到解压目录:先看看INSTALL README

3), ./configure; 通过选项传递参数,指定启用相关特性,安装路径,执行时参考Makefile,让后生成makefile;还有检查外部环境变量

相关选项:–help  获取这个源代码包中,配置相关信息的选项(可能每个包都是不同的);   

                    –prefix=/path/to/somedir  :指定安装的目录, 默认是安装到/usr/local;

      –sysconfdir=/path/to/somedir  ;配置文件的安装目录;

     –builddir=/path/to/somedir

4) make && make install ; 编译和建立相应的程序文件

     安装后配置程序环境

     1), 导出二进制文件,编辑:/etc/profile.d/NAME.sh  添加:export PATH=/path/to/bin:$PATH

 2), 导出库文件,编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件到此文件中,让系统重新生成缓存 ldconfig  [-v]

 3), 导出头文件  基于链接的方式实现,ln -sv

 4), 导出帮会手册 编辑/etc/man.config文件 添加 一个 MANPATH

 

第二、rpm包管理(CentOS6平台测试的)

1,程序包的组成清单:

文件清单和安装和卸载时运行的 脚本

2,数据库包含的信息(CentOS系列/var/lib/rpm

程序包的名称和版本;依赖关系;功能说明;安装生成的指定文件路径及校验信息

3,获取一个包,我们看其合法性和完整性:一是,获取程序包的时候,一般都是在官方获取;二是验证完整性:rpm -V package

https://www.linux178.com/linux/6.html :可以参考这个

rpm命令  主要包含下列几类:

安装:-i

升级:-U,–update

卸载:-e,–erase

查询:-q,–query

校验:-V,–verifyf

数据库维护:–builddb

安装:

-v 详细信息;-vv 更详细的信息

-h:以hash进度条显示安装百分比,每个#表示2%的进度

–test:测试安装,检查报告依赖和冲突

–nodeps 忽略依赖关系,不建议使用

-ivh  –replacepkgs  ;删除必要的程序文件,而又找不回来,就重新安装

–nosignature:不检查包的签名

–nodigest:不检查包完整

升级:

–force  强制执行

–oldpackage 降级到老版本

-U,升级或者安装

-F,系统没有老版本,就不能升级操

注意:不建议系统内核升级,linux支持多版本内核并存,所以直接安装多版本内核就行

卸载:

-e 卸载

–allmatches 卸载所有匹配指定名称的程序包各版本

–nodeps:忽略依赖关系

–test:测试卸

查询:

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

-q  查询是否安装及包的版本

-a,–all:查询所有已经安装过的包

-qa  :查询系统上所有已经安装的包

-qf  somefile  :查询这个文件所有哪个包生成的

-p,–package PACKAGE_FILE:用于实现未安装的程序包的安装后生成哪些文件而进行的查询

–whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供

–whatrequires CAPABILITY:查询指定的CAPABILITY依赖于哪个程序包

[query-options]

–changelog :查询程序的日志,就是它的故事

-l:列出一个程序包安装生成所有的文件列表

-i,–info  程序包相关的信息,版本号,大小,包组

-c,–configfiles :查询指定程序包的配置文件

-d,–docfiles,查询指定的程序包的帮助文档

–provides:查询指定程序提供了什么功能

-R,–requires :查询指定程序包的依赖关系

–scripts :查询定指定程序包中使用的脚本

 

校验:

-V:校验查询,查询安装后文件是否被修改过

rpm -V 程序

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

   S file Size differs

   M Mode differs (includes permissions and file type)

   5 digest (formerly MD5 sum) differs

   D Device major/minor number mismatch

   L readLink(2) path mismatch

   U User ownership differs

   G Group ownership differs

   T mTime differs

   P caPabilities

导入校验方式:

rpm –import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 : 导入公钥

手动验证:rpm -K PACKAGE_FILE

重建数据库

/var/lib/rpm ; rpm数据库位置

rpm查询操作就是基于此数据库实现的

rpm { –initdb | –rebuilddb } [–dbpath=/tmp/rpm]

–initdb :初始化数据库,当前无数据库时,可实现创建一个新的数据库,当前有时不执行任何操作

–rebuilddb:重新构建,有数据库,但是不完整

 

第三、yum源安装

yum源安装—>配置文件指定服务器(URL:统一资源配置服务)—>匹配包列表文件—>下载相关联的程序包安装,yum repository:yum repos;存在rpm包的库,以及包相关的元数据文件(存放特定目录下:repodata)

支持的文件服务器有:ftp:// ;http://nfs://  ; file:///

yum的客服端:配置文件

/etc/yum.conf  : 为所有仓库提供公共配置

/etc/yum.repos.d/*.repo  ;为仓库的指向提供配置

仓库的定义:查询文档(man yum.conf),基本格式

[repositoryid]

name=some name for this repository

baseurl=url://path/to/repository

enabled={1|0} 是否启用此仓库,默认开启的

gpgcheck={1|0} 是否校验签名信息

gpgkey=URL ;指明秘钥文件

enabledgroups:支持组的方式管理此程序包

failovermethod 随机

安装:

   yum install package1 …..  ;默认安装最新版本的程序包,可以安装指定 版本号的程序包

   yum updates [package1] … 升级

   yum check-update ;  检查可用升级

   yum remove|erase package1 …   卸载

   yum info     ;查包的信息

   yum provides | […]   查看某文件有哪个包提供的 相当于 rpm -qf PACKAGE_FILE 

   yum clean  [packages|metadata|all} 清楚本地指定相关缓存

   yum search string1 [….] 以指定关键字搜索程序包名以及summary信息

   yum deplist package1 … 查看指定包的依赖关系

   yum history : 查看使用yum 操作的相关事务历史(使用yum的日志) stats :查看统计数据

–nogpgcheck  不检查秘钥

-y 自动选择“yes

-q  安静安装,不输出信息

-noplugins:禁用所有插件

  1. yum的repo配置文件中可用的变量

    $releasever:当前系统的发新版的主版本号

    $arch:系统架构

    $basearch:基础平台

    $YUM0-YUM9 ;自定义的变量


比如配置本地光盘的Package ,(挂载到/mnt/cdrom

备份原有的.repo文件,vim /etc/yum.repos.d/CentOS-local.repo,如下:

[Base]

name=CentOS Linux release 7.3

baseurl=file:///mnt/cdrom/

enable=1

gpgcheck=1

gpgkey=file:///media/RPM-GPG-KEY-CentOS-7

 

实例:

lrzsz安装

rpm -ivh /home/giveup/soft/lrzsz-0.12.20-27.1.el6.x86_64.rpm

 blob.png

安装zsh为例,利用yum源安装

~]# yum install zsh

 blob.png

blob.png

 

 

原创文章,作者:不忘初衷,如若转载,请注明出处:http://www.178linux.com/66369

(1)
不忘初衷不忘初衷
上一篇 2017-01-10
下一篇 2017-01-10

相关推荐

  • 关于大型网站技术演进的思考(十一)–网站静态化处理—动静分离策略(3)

    原文出处: 夏天的森林   前文里我讲到了网站静态化的关键点是动静分离,动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。由此可见,网站静态化处理的核心就是动静分离和缓存两大方面,上篇我简单讲述了动静…

    Linux干货 2015-03-11
  • 第十四周作业

    系统的INPUT和OUTPUT默认策略为DROP; [root@CentOS7 ~]# iptables -P INPUT DROP [root@CentOS7 ~]# iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服…

    Linux干货 2017-08-13
  • linux终端类型

    人机交互界面:GUI、CLI GUI: gnome:c,gtk kde:c++,qt CLI: bash,zsh,sh,csh,ksh 不同CLI间跳转:alt+f1\f2\f3\f4   终端类型: 物理终端、控制台终端:/dev/console,控制台console 计算机显示器通常被称为控制台终端(Console) 虚拟终端:/dev/tty…

    Linux干货 2016-10-14
  • 推荐-使用iptables作为网络防火墙构建安全的网络环境

    使用iptables作为网络防火墙构建安全的网络环境 使用iptables作为网络防火墙构建安全的网络环境 前言 网络防火墙的优势 实验拓扑图 实验环境 实验步骤 防火墙未设置前对所有服务器的测试 针对不同服务器进行”非法”访问 定义网络防火墙规则 再次针对不同服务器进行”非法”访问 测试服务器是否可访问 总结 前言 一般情况下iptables只作为主机防火…

    Linux干货 2016-03-31
  • 进程工具总结

    一、top命令         top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处…

    Linux干货 2016-09-12
  • linux磁盘分区格式化基本操作

    磁盘分区 分区格式的两种选择:MBR和GPT 分区命令: parted的操作都是实时生效的,小心使用,主要是用于大于2T硬盘,支持MBR和GPT两种格式。 用法:parted [选项]… [设备[命令[参数]…]…] parted /dev/sdb mklabelgpt|msdos //选择分区格式 parted…

    Linux干货 2017-04-24

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-10 16:14

    yum可结果后面的http进行搭建,加油!!!