linux程序包管理和rpm包

Linux程序包管理的实现、rpm包管理器

rpm命令实现程序管理

安装:-ivh,--nodeps,--replacepkgs

卸载:-e,--nodeps

升级:-Uvh,-Fvh,--nodeps,--oldpackage

查询:,-q,-qa,-qf,-qi,-qd,-qc,-q --changlog,-q
--provide,-q --requires

j校验:-V

导入GPG密钥:--import,-K,--nodigest,--nosignature

数据库重建:--inittab,--rebuilddb

Linux程序包管理(2)

Centos:
yum ,dnf

URL:统一资源配位符

yum主机,http,ftp

creatrepo

存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata)

文件服务器:

ftp://

http://

nfs://

file:///

yum客户端:

配置文件

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

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

仓库指向的定义:

[repositoryID]

Name:some
name for this repository

Baseurl=url://path/to/repository

Enabled={1|0}

Gpgcheck={1|0}

Gpgkey=URL

Enablegroups={1|0}

Failovermethod={roundrobin|priority}默认为:roundrobin

Keepalive

username、password

cost:1000(默认值),开销

----------------------------------------------------------------------------------

yum [OPTIONS] [COMMAND]
[PACNKAGE]

显示仓库列表:

repolist  [all|enabled|disabled]

显示程序包:

list

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

~]#yum list {available|installed|availabble} [glob_exp1] [...]

安装程序包:

install package1  [package2] [...]

升级程序包:

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

检查可用升级:

check-update

卸载程序包:

remove | erase package1 [package2]

查看程序包的信息:

info  [...]

查看指定的特性(可以是某文件)是有哪个程序包提供:

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

清理本地缓存 :

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

构建缓存:

makecache

搜索:

search  string1  [string2]  [...]  (已指定的关键字搜索程序包名及summary信息)

升降级程序包:

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

downgrate package1  [package2] [...]

查看指定包所依赖的capabilities:

deplist package1 [package2] [...]

查看yum事务历史:

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

安装及升级本地程序包:

localinstall rpmfile1  [rpmfile2] [...]

(maintained for legacy reasons only -use install)

localupdate rpmfile1 [rpmfile2] [...]

(maintained for legacy reasons only -use update)

包组管理的相关命令

groupinstall group1 [group2] [...]

groupupdate group1 [group2] [...]

grouplist [hidden] [groupwildcard] [...]

groupremove group1 [group2] [...]

groupinfo group1 [group2] [...]

如何使用光盘当做本地yum仓库

1)挂载光盘至某个目录,例如media/cdrom

~]#mount  -r -t 
iso 9660  /dev/cdrom /media/cdrom

2)创建配置文件

{centos7}

Name=

Baseurl=

Gpgcheck=

Enabled=

yum的命令行选项:

--nogpgcheck:禁止进行gpg
check

-y:自动回答为“yes”

-q:静默模式

--disablerepo=repoidglob:临时禁用此处指定的repo

--enablerepo=repoidglob:临时启用此处指定的repo

--noplugins:禁用所有插件

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

$releasever:当前OS的发行版的主版本号

$arch:平台

$basearch:基础平台

¥YUM0-$YUM9

http://mirrors.mageedu.com/centos/$releasever/$basearch/os

如何创建yum仓库

Create [OPTIONS]   <directory>

程序包编译安装

testapp-VERSION-release.src.rpm 
--> 安装后,使用rpmbuild命令制成二进制格式的rpm包,而后再安装、

源代码-->预处理-->编译(gcc)-->汇编-->链接-->执行

源代码组织格式:

多文件:文件中的代码之间,很可能存在跨文件依赖关系

项目管理器

C/C++:make     (configure-->makefile.in (模板)-->Makefile)

Java:maven

编译安装三步:

./configure

1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makfile

2)检查依赖到的外部环境

Make   :

根据Makefile文件,构建应用程序

Make
install

开放工具:

Autoconf:生成configure脚本

automake:生成Makefile.in

建议:安装前查看install文档,README

开源程序源代码的获取:

官方自建站点;

apache.org(AFS)

Mariadb.org

代码托管:

SourceForge

Github.com

code.google.com

c/c++:gcc(GNU
C Complier)

编译C源代码:

前提:提供开发工具及开发环境

开发工具:make,gcc等

开发环境:开发库,头文件

glibc:标准库

通过 “包组”提供开发组件

Centos6:“development  tools”"server platform development"

第一步:configure脚本

选项:指定安装位置,指定启用的特性

--help:获取其支持使用的选项

选项分类;

安装路径设定:

--prefix=/PATH/TO/SOMEWHERE:指定默认安装位置:默认为、/usr/local

--sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置

System  types

Optional  features:

--disable-FEATURE

--enable-feature[=ARG]

optional packages:可选包

--with-PACKAGE[=ARG]

--without-PACKAGE

Some
influential environment variables

第二步:makestall

第三步:

安装后的配置:

1)导出二进制程序目录至 PATH环境 变量中

编辑文件、

/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

时间: 2024-11-05 15:37:30

linux程序包管理和rpm包的相关文章

linux 下面 jdk1.7 rpm 包的安装

1.下载安装jdk7.0 for linux 我下载的版本为:jdk-7u2-linux-i586.rpm 下载地址为:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html 2.将 jdk-7u2-linux-i586.rpm上传到用户目录 3.[[email protected]  ~]rpm -ivh  jdk-7u2-linux-i586.rpm Preparing... 

linux下正确卸载rpm包

linux下正确卸载rpm包 rpm -qa | grep -i ntp 执行结果: [[email protected] elasticsearch-head]# rpm -qa | grep -i ntp fontpackages-filesystem-1.44-8.el7.noarch 卸载: yum remove fontpackages-filesystem-1.44-8.el7.noarch -y 原文地址:https://www.cnblogs.com/effortsing/p/1

rpm程序包管理和YUM仓库

程序包管理: 内核功能:进程管理.内存管理.网络协议栈.驱动程序.... 应用程序: 包管理器的功能:打包,包管理(安装.升级.卸载.查询及校验)  deb: debian  rpm: redhat package manager    RPM is Package Manager 程序包的组成部分:   二进制程序:/bin, /sbin,/ /usr/bin, /usr/sbin,   库文件:/lib64, /usr/lib64   配置文件:/etc   帮助文件:manual, inf

【Linux相识相知】rpm包管理

我们日常在使用Windows的时候,如果要安装某个软件,最简单的方法就是在程序包的官网直接下载软件包到本地,一般是以.exe或者.msi格式的文件,然后一直下一步下一步就能安装成功了,但是在使用linux的操作系统的时候也许不是这么的友好,即使现在有的linux发行版也可以通过简单的搜索点击安装来实现软件包的安装,但这并不一种很好的安装方法,因为你必须安装桌面环境,消耗和占用一定的内存资源,除非只是你日常使用.本次博客就如何使用rpm命令来实现centos上的软件包的安装与管理,rpm也许不是最

Linux程序管理之rpm,yum,编译安装详解

操作系统:CentOS 6.7 内核版本:2.6.32-573.el6.x86_64 程序编译概念 程序要在机器上运行,就需要编译,编译针对特定的OS平台和硬件平台,编译后的程序只能运行在特定的软硬平台上  交叉编译:        在测试机上针对其他平台进行程序编译 编译过程:        预编译 -> 编译 -> 汇编 -> 链接            链接:生成库调用的头文件            静态链接:程序文件本身集成所需调用的库文件            动态链接:调用标

Linux软件包的管理--RPM包管理器

在Linux中如何安装.升级.卸载软件,是我们日常运维中重要的组成部分.接下来一CentOS6系统为例,讲解如何使用 RPM 包管理器,yum包管理器以及源码的方式来管理我们的软件包. 一.相关的背景知识 许多程序的源程序,例如使用C语言编写的源代码,要经过预处理,编译,汇编,链接才能生成真正的可执行程序(二进制),才可以使用.为了简化这样的过程,就出现了所谓的包管理器.它出现的目的是:将编译好的程序打包成一个文件或有限的几个文件,可用于实现安装.卸载.升级.查询等功能. 一个包管理器应该具有如

Linux /centos 下nginx rpm包安装及配置

Centos下安装nginx rpm包                                                                                                                            www.169it.com 1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/c

Linux使用yum安装rpm包

1.yum其实管理的也是rpm包,只不过依赖什么的都自己做了2.yum在有的linux版本是收费的,但是CentOS是免费的3.yum一般意义上是需要联网的,即:使用网络yum源 a.yum源配置文件地址 /etc/yum.repos.d/CentOS-Base.repo b.yum源配置文件含义(知道含义就行了,改的可能性几乎为0) [base] 容器名称,一定要房子[]中 name 容器说明,相当于注释,可以随便改 mirrorlist 镜像站点地址 baseurl 原始服务器地址,默认是C

[Linux]服务管理:rpm包, 源码包

--------------------------------------------------------------------------------------------------- |--- 1. 独立的服务  |---- rpm包默认安装的服务 |--- 2. 基于xinetd服务 linux服务分类: | |---- 源码包安装的服务 查询已安装的服务: rpm包安装的服务:chkconfig --list( 查看服务自启动状态,可以看到所有rpm包安装的服务 ) ( 7个