Linux软件包管理

简介:

一、rpm包管理工具

1、rpm包简介

rpm是redhat的软件包管理器。rpm包管理器全称rpm: Redhat Package Manager RPM  Package Manager。它的软件包后缀也为.rpm。除此外,debian,deb文件有dpkg包管理器。


rpm包的命名方式:

源代码:name-version.tar.{gz|bz2|xz} 例如:zip-3.0-1.el6_7.1.x86_64.rpm

version:major.minor.release 

major:主版本 重大的分支

minor:次版本,其中某个功能有所改变

release:发行号,修正了某个BUG,修改了某个代码。


RPM格式:

yum-presto-0.6.2-1.el6.noarch.rpm

如:0.6.2为程序版本号,1.el6是release,noarch.rpm是使用的什么硬件架构平台

name-VERSION-relese.arch.rpm

version: 这是源代码的版本。就是上面的majob,minor,release。

release.arch:打包版本号。rpm的发行号。 

arch(archetecture)是硬件架构或系统的平台类型。


2、程序包管理

功能:将编译好的应用程序的各组成文件打包一个或几个 程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、 升级和校验等管理操作。

包管理主要包括如:打包、安装、查询、升级、卸载、校验、数据库管理


3、包管理工具的使用

1)安装(常用组合rpm -ivh PACKAGE_.RPM)

rpm -ivh openssl-1.0.1e-48.el6.x86_64.rpm  


rpm [OPTIONS]  [PACKAGE_FILE]
     安装:-i,--install

    卸载:-e,--erase

    查询:-q,通常结合qa使用

    显示:-v,显示过程,-vv显示更详细的信息

    升级:-U,--update

    -h:hash marks输出进度条;每个#表示2%的进度; 
    --test:测试安装,检查并报告依赖关系及冲突消息等; 
    --nodeps:忽略依赖关系;不建议; 
    --replacepkgs:重新安装                   

2)升级

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

-U:升级或安装;如果原本就没有安装此软件,则安装。
-F:升级,如果没有安装些软件,则不升级。

--force:强制升级;有时候低版本的程序可能被其它程序所依赖,这时升级会报错。如果强制升级很可能会导致一些程序不能使用。这也是还要使用源代码安装软件的一个原因。

rpm -Uvh openssl-devel-3.0.1.el6_7.1.x86_64.rpm

rpm -Fvh openssl-devel-3.0.1.el6_7.1.x86_64.rpm


3)卸载
rpm -evh PACKAGE_NAME 

例如:rpm -evh tree 


4)查询 

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

-a, --all:查询所有已经安装过的包,场结合qa一期使用;

-f  FILE:查询指定的文件由哪个程序包安装生成;
-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;


二、yum 包管理工具

1、简介

yum全称为:Yellowdog Update Modifier,可以解决包与包之间的依赖关系,使得程序包安装简洁方便、快速。yum包安装分为本地yum和网络yum两类别。

文件服务器(共享rpm包,通常使用http服务): 通过yum所支持的文件共享机制将各rpm包通过文件服务共享。
仓库存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata)

2、yum客户端配置和仓库的设置

要使用yum管理应用程序,首先得配置其可用的yum仓库,保存在配置文件中:

/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
 

配置文件格式:由两段组成,类似windows的ini配置文件。
[main] : 主配置段 
[repo] : 仓库配置段

其中/etc/yum.conf中一般是[main]配置段的设置,/etc/yum.repos.d/下面的各以.repo结尾的文件一般都是配置[repo]仓库段的。当然也可以把仓库段写到yum.conf文件中。不过这样分开设置的原因就是为了清晰,容易配置。


[main]

cachedir=/var/cache/yum/$basearch/$releasever #缓存目录

keepcache=0    #是否缓存二进制文件,0缓存,1不缓存 

debuglevel=2     #调试级别

logfile=/var/log/yum.log #日志文件

exactarch=1    

obsoletes=1

gpgcheck=1    #包合法性检查

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release



/yum.repos.d/*.repo文件配置如下:

[repo_ID] #所有仓库的此项不能相同

name=string #仓库名称

baseusrl=url://path/to/somefile #仓库的访问路径

enable={1|0} #0表示关闭次仓库 1表示启动

gpgcheck={1|0} #0表示禁用,1表示启用

gpgkey=URL #公钥文件,可以在本地也可以在服务器端的路径

实例如下所示:

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///media/CentOS/

        file:///media/cdrom/

        file:///misc/cd/

        file:///media/cdrecorder/

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

一个repo文件可以设置多个仓库信息。 baseurl指定仓库的的方式

客户端配置文件指定对应服务器访问方式:  
ftp   ftp://****/repo
http  http://xxxx/reop

nfs   ntf://****/nts_path
file  file:///****/repository     
三个斜线是因为一个是本地的根目录路径。
所指向的目的就是有repodata目录的目录。

我们这里举个例子,就以我们系统的光盘为例,它就是一个仓库。

wKioL1e1Dr6AOOYAAAApq3vGMJU635.png

配置本地yum源仓库:

[root@centos6 yum.repos.d]# cat local.repo

[local]

name=local-yum-repo

baseurl=file:///media/cdrom

gpgcheck=0

enable=1

[root@centos6 yum.repos.d]#yum clean all 

[root@centos6 yum.repos.d]yum repolist all 

wKioL1e1GBvg3HdFAABUC9lzug8533.png


yum命令

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

   选项:  

    --nogpgcheck:禁止进行gpg check;

    在用yum安装本地包的时候可能会用到。不然没有key是无法安装的。
    -y: 自动回答为“yes”;不用确认,自动安装。
    -q:静默模式;
    --disablerepo=repoidglob:临时禁用此处指定的repo;
    --enablerepo=repoidglob:临时启用此处指定的repo;
    --noplugins:禁用所有插件;

常用选项:

    yum -y install Packages 

    yum clean all 

    yum erase Packages 

    yum group list 

各位如想了解搭建网络源具体步骤可查看:http://purify.blog.51cto.com/10572011/1832034


三、编译安装程序包软件  

一、简介

主要是通过C代码的编译实现软件的安装,主要步骤如下所示:./configure make make install 


编译源程序的步骤:

# tar xf testapp-version.tar.{xz|bz2|gz}

# cd testapp-version

# ./configure

还需通过许多选项指定编译特性

# make

# make install


./configure脚本的使用:

1、获取帮助

./configure --help


2、较通用的一些选项

安装路径相关:

--prefix=/path/to/somewhere: 指定安装路径

--sysconfdir=/path/to/somewhere: 指定配置文件安装路径

指定启用/禁用的特性

--enable-FEATURE: 例如--enable-fpm

--disable-FEATURE: 例如--disable-socket

指定所依赖的功能、程序或文件

--with-FUNCTION[=/path/to/somewhere]

--without-FUNCTION


安装后的配置:


程序运行:

1、让二进制程序直接,而无须输入路径

# vim /etc/profile.d/APPNAME.sh

export PATH=$PATH:/path/to/somewhere

source /etc/profile.d/

2、导出手册页:

编辑/etc/man.config配置文件,添加一项MANPATH,路径为新安装的程序的man目录;


# man -M /path/to/somewhere KEYWORD


程序开发:如果其它应用程序依赖此程序的开发环境,或针对此程序做二次开发

1、导出库文件

第一步:指定让系统搜索定制的路径

编辑/etc/ld.so.conf.d/APPNAME.conf

一行一个库文件路径


第二步:触发系统重新搜索所有的库文件并生成缓存

# ldconfig 

-v


2、导出头文件

/usr/local/nginx/include


系统找头文件的路径是:/usr/include


导出方式:创建链接进行

ln -sv /usr/local/nginx/include /usr/include/nginx


本文参照来自互联网及其自行总结,如有相似之处纯属正常。



本文转自chengong1013 51CTO博客,原文链接:http://blog.51cto.com/purify/1839739,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
【Shell 命令集合 系统设置 】Linux 软件包管理工具 rpm命令 使用指南
49 0
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
39 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
27天前
|
存储 算法 Linux
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
60 5
|
1月前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
53 1
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
33 0
|
1月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
37 2
|
15天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
9天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
101 2
|
15天前
|
存储 缓存 监控
Linux内存和硬盘空间管理技巧
了解Linux内存和硬盘管理技巧,提升系统性能和稳定性。使用`free`, `top`, `vmstat`监控内存,通过`sync`, `echo 1 > /proc/sys/vm/drop_caches`清理缓存。利用Swap分区释放内存。借助`df`, `du`检查硬盘空间,清理无用文件,使用`clean-old`, `gzip`, `tar`压缩归档。查找大文件用`find`和`du`,确保
33 0