软件包管理相关软件:

软件包管理器的核心功能:
.制作软件包
.安装,卸载,升级,查询,效验 Redhat ,SUSE : RPM
Debian :dpt 依赖关系; 前端工具;yum ,apt-get
yum 是RPM 的前端工具
apt-get 是dpt 的前端工具
后端工具:RPM,dpt

rpm:

CentOS系统上rpm命令管理程序包:
安装、卸载、升级、查询、校验、数据库维护 安装:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
-v: verbose
-vv:
-h: 以#显示程序包管理执行进度;每个#表示2%的进度 rpm -ivh PACKAGE_FILE ... [install-options]
--test: 测试安装,但不真正执行安装过程;dry run模式;
--nodeps:忽略依赖关系;
--replacepkgs: 重新安装; --nosignature: 不检查来源合法性;
--nodigest:不检查包完整性; --noscipts:不执行程序包脚本片断;
%pre: 安装前脚本; --nopre
%post: 安装后脚本; --nopost
%preun: 卸载前脚本; --nopreun
%postun: 卸载后脚本; --nopostun 升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ... upgrage:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”;
freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作; rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ... --oldpackage:降级;
--force: 强行升级; 注意:() 不要对内核做升级操作;Linux支持多内核版本并存,因此,对直接安装新版本内核;
() 如果原程序包的配置文件安装后曾被修改,长级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留; 查询:
rpm {-q|--query} [select-options] [query-options] [select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成 -p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作; --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供;
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖; [query-options]
--changelog:查询rpm包的changlog
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件;
--scripts:程序包自带的脚本片断
-R: 查询指定的程序包所依赖的CAPABILITY;
--provides: 列出指定程序包所提供的CAPABILITY; 用法:
-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE
-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, ...
-qa 卸载:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--test] PACKAGE_NAME ... 校验:
rpm {-V|--verify} [select-options] [verify-options] S file Size differs
M Mode differs (includes permissions and file type)
digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink() path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ 包来源合法性验正及完整性验正:
完整性验正:SHA256
来源合法性验正:RSA 公钥加密:
对称加密:加密、解密使用同一密钥;
非对称加密:密钥是成对儿的,
public key: 公钥,公开所有人
secret key: 私钥, 不能公开 导入所需要公钥:
rpm --import /PATH/FROM/GPG-PUBKEY-FILE CentOS 7发行版光盘提供的密钥文件:RPM-GPG-KEY-CentOS- 数据库重建:
rpm {--initdb|--rebuilddb}
initdb: 初始化
如果事先不存在数据库,则新建之;否则,不执行任何操作; rebuilddb:重建
无论当前存在与否,直接重新创建数据库;
安装,查询,卸载,升级,效验,数据库的重建工作

    noarch是no architecture的缩写,说明这个包可以在各个不同的cpu上使用    

    .安装
rpm -i /PATH/TO/PACKET_FILE
-i : 指定安装文件
-h : 以#号显示进度,每个# 表示2%;
-v :显示详细过程
-vv :显示更详细的过程 examples: rpm -ivh /PATH/TO/PACKET_FILE
--nodeps: 忽略依赖关系
--replacepkgs:重新安装,替换原有安装 --force :强行安装,可以实现重装和降级 rmp格式文件有两种形式
二进制包(Binary)以及源代码包(Source)两种。
二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。
源代码包经常以src.rpm .查询
-q :查询模式
rpm -a 包名
rpm -qa :查询安装的所有包,
rpm -qi PACKET_NAME :查询指定包的信息
rpm -ql PACKAGE_NAME :查询指定安装包生成的文件列表
rpm -qf /path/to/somefle :查询指定的文件是有那个rpm 包生成的
rpm -qc NAME : 查询指定安装包的配置文件
rpm -qd NAME :查询指定安装包的帮助文件
rpm -q --scripts PACKAGE_NAME: 查询指定安装包包含的脚本
rpm deplist:显示rpm软件包的所有依赖关系。 rpm -qpi /PATH/TO/PACKAGE_NAME :
rpm -qpl /PATH/TO/PACKAGE_NAME :
#查询某个rpm包尚未安装,查询其说明信息,安装以后的生成的文件 .升级
rpm -Uvh /PATH/TO/NAME_FILE :如果有老版本则升级,否则退出
rpm -fvh /PATH/TO/NAME_FILE :如果有老版本则升级,否则退出
rpm -ivh --oldpackage NAME :降级到低版本 ,卸载
rpm -e PACKAGE_NAME :卸载,
--nodeps :有依赖关系无法卸载,使用nodeps 强制卸载 .效验
rpm -V package_name : 效验 .重建数据库
rpm :
--rebuilddb :重建数据库,一定会重新建立
--initdb :初始化数据库。没有则进行建立 .检验来源合法性,及软件完整性
rpm -K /path/to/file_name rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-
#导入秘钥 scp :scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度 #将本地文件传送到远程服务器
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
#将远程服务器文件传送传到本地
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/.mp3

yum:

    CentOS: yum, dnf

    URL: ftp://172.16.0.1/pub/    

    YUM: yellow dog, Yellowdog Update Modifier

    yum repository: yum repo
存储了众多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,意为随机挑选;
cost=
默认为1000 yum命令的用法:
yum [options] [command] [package ...] command is one of:
* install package1 [package2] [...]
* update [package1] [package2] [...]
* update-to [package1] [package2] [...]
* check-update
* upgrade [package1] [package2] [...]
* upgrade-to [package1] [package2] [...]
* distribution-synchronization [package1] [package2] [...]
* remove | erase package1 [package2] [...]
* list [...]
* info [...]
* provides | whatprovides feature1 [feature2] [...]
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
* makecache
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
* search string1 [string2] [...]
* shell [filename]
* resolvedep dep1 [dep2] [...]
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
* reinstall package1 [package2] [...]
* downgrade package1 [package2] [...]
* deplist package1 [package2] [...]
* repolist [all|enabled|disabled]
* version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]
* history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
* check
* help [command] 显示仓库列表:
repolist [all|enabled|disabled] 显示程序包:
list
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available|installed|updates} [glob_exp1] [...] 安装程序包:
install package1 [package2] [...] reinstall package1 [package2] [...] (重新安装) 升级程序包:
update [package1] [package2] [...] downgrade package1 [package2] [...] (降级) 检查可用升级:
check-update 卸载程序包:
remove | erase package1 [package2] [...] 查看程序包information:
info [...] 查看指定的特性(可以是某文件)是由哪个程序包所提供:
provides | whatprovides feature1 [feature2] [...] 清理本地缓存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 构建缓存:
makecache 搜索:
search string1 [string2] [...] 以指定的关键字搜索程序包名及summary信息; 查看指定包所依赖的capabilities:
deplist package1 [package2] [...] 查看yum事务历史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats] 安装及升级本地程序包:
* 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 [...] 如何使用光盘当作本地yum仓库:
(1) 挂载光盘至某目录,例如/media/cdrom
# mount -r -t iso9660 /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.magedu.com/centos/$releasever/$basearch/os 创建yum仓库:
createrepo [options] <directory> 程序包编译安装:
testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装; 源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行 源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件依赖关系; C、C++: make (configure --> Makefile.in --> makefile)
java: maven C代码编译安装三步骤:
./configure:
(1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;
(2) 检查依赖到的外部环境;
make:
根据makefile文件,构建应用程序;
make install 开发工具:
autoconf: 生成configure脚本
automake:生成Makefile.in 建议:安装前查看INSTALL,README 开源程序源代码的获取:
官方自建站点:
apache.org (ASF)
mariadb.org
...
代码托管:
SourceForge
Github.com
code.google.com c/c++: gcc (GNU C Complier) 编译C源代码:
前提:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件
glibc:标准库 通过“包组”提供开发组件
CentOS 6: "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 第二步:make 第三步:make install 安装后的配置:
(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
client :
配置文件:指定yum 仓库的信息,路径等
yum工具作为rpm包的软件管理器,可以进行rpm包的安装、升级以及删除等日常管理工作,而且对于rpm包之间的依赖关系可以自动分析,大大简化了rpm包的维护成本。
yum工具的配置,主要由两个文件控制:/etc/yum.conf以及/etc/yum.repos.d/filename.repo
关于/etc/yum.conf文件:主要承担全局配置[main],此外也可以在此处配置软件仓库(repository)
关于/etc/yum.repos.d/filename.repo:主要承担具体软件仓库的配置(若上面yum.conf中配置了软件仓库,此处也可以选择不配置),filename可自行定义。 参数解释如下:
[rhel-debuginfo]:用于区分不同的repository,在一个filename.repo文件中,可以定义一个或者多个repository
name:用于对repository的描述
baseurl:用于指定获取rpm包的源位置,支持http://、ftp://、file://三种协议。
enabled:用于定义此软件仓库是否可用。:不可用,:可用
gpgcheck:定义是否对rpm包进行GPG校验。
gpgkey:用于定义校验的gpg密钥文件的位置。 以下是关于管理的常用命令 yum repolist : 查看可用的软件仓库信息
yum list rpm包 : 查看rpm包的安装情况,支持通配符*,若为被安装,显示可用的软件仓库
yum list installed |grep rpm包: 查看rpm包是否被安装
yum info rpm包 : 查看rpm包详细信息
yum check-update : 检查可用的rpm包更新
yum install rpm包 : 安装rpm包,支持通配符*
yum remove rpm包 : 删除rpm包
yum clean packages : 清除rpm包缓存
yum clean headers : 清除rpm头文件缓存
yum clean all : 清除rpm头文件以及包缓存 yum -y update :更新yum 源,
yum makecache : 就是把服务器的包信息下载到本地电脑缓存起来 ***************************
运行命令生成缓存:
yum clean all
yum makecache
#替换yum 必须要做的动作
******************************** wget 命令:
wget 命令用来从指定的URL 下载文件。 编译环境,开发环境
手动编译安装;
make :项目管理工具,
Makefile : make install :安装
****************************************************
#准备编译环境,安装"development tool" 编译安装的三步骤:
./configure
--help :获取脚本使用帮助
--prefix=/path/to/somewhere :
--sysconfdir=/path/to/config_file ;指定配置文件安装位置 make make install
************************************************
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。
./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。
**************************************************** ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf 其中我们通过--prefix制定了安装路径,
通过--conf-path制定了配置文件的具体位置 .修改path 环境变量,能够识别二进制程序路劲
. 添加额外的lib 库路径
.头文件:include netstat -ntlp:
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-r :显示路由
-p:

软件包管理(rpm,yum)的更多相关文章

  1. 软件包管理 rpm yum apt-get dpkg

    http://blog.csdn.net/ljq1203/article/details/7401616

  2. rpm软件包管理/yum软件管理

    绝大数开源软件都是公布源代码的,源代码一般被打包为tar.gz归档压缩文件,然后手工编译为二进制可执行文件 ./configure 检查编译环境/相关库文件/配置参数,生成makefile make ...

  3. 软件包管理rpm和yum

    rpm的使用: 安装的包相关包信息会保存在/var/lib/rpm目录下的文件中 安装参数: -i install安装 -v 显示详细信息 -h 打印####号 -V 校验软件包,会到/var/lib ...

  4. Linux系列教程(十二)——Linux软件包管理之yum在线管理

    上一篇博客我们介绍了rpm包管理之rpm命令管理,我们发现在使用rpm命令手动安装rpm包的时候,会发现安装遇到到的依赖让你痛不欲生,安装一个rpm时会要先先安装某个依赖的rpm,而安装这个依赖的rp ...

  5. Linux软件包管理之yum在线管理

    目录 1.yum在线管理 2.网络 yum 源 3.光盘 yum 源搭建步骤 ①.挂载光盘 ②.让网络 yum 源失效 ③.修改光盘yum源文件 ④.输入yum list 可以查看光盘yum源里面的软 ...

  6. Linux—软件包管理器yum安装详解

    yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指定的服务器自动下载RPM包 ...

  7. 软件包管理:rpm包管理-yum在线管理-IP地址配置和网络yum源

    只需告诉系统你想安装那个包,剩下的所有依赖问题yum都会解决. 有些情况下不能上网,但可以使用光盘. centos的yum是免费的.redhatyum付费. yum管理的其实同样是rpm包.并没有yu ...

  8. 软件包管理:rpm命令管理-包命名与依赖性

    rpm包的管理主要有两种方法:一种是rpm命令管理另一种是yum在线管理 注意软件包没有扩展名,写上只是为了好看,便于识别而已. 注意区别包名,包全名.之所以要区分,就是因为有些命令十分挑剔,需要跟正 ...

  9. linux基础之程序包管理(rpm,yum)

    一.rpm 安装:rpm { -i | --install } [ install-options ] PACKAGE_FILE... -v: 显示安装时的详细信息 -vv: 显示许多难以阅读的调试信 ...

随机推荐

  1. 使用Dubbo的SPI扩展机制实现自定义LoadBalance——方法二 不改源码添加META-INF/dubbo元数据

    一.官网提供的方法 参考官网 http://dubbo.apache.org/zh-cn/docs/dev/impls/load-balance.html 二.方法总结 在工程中创建类并实现LoadB ...

  2. corefx 源码学习:SqlClient 是如何同步建立 Socket 连接的

    在昨天的技术周会上发现 EnyimMemcached 中建立 Socket 连接的代码有问题,今天坐车的时候在手机上阅读 .net core 2.2 的 SqlClient 中同步建立 Socket ...

  3. 终于明白了 C# 中 Task.Yield 的用途

    最近在阅读 .NET Threadpool starvation, and how queuing makes it worse 这篇博文时发现文中代码中的一种 Task 用法之前从未见过,在网上看了 ...

  4. 解决 ASP.NET Core 自定义错误页面对 Middleware 异常无效的问题

    我们基于 Razor Class Library 实现了自定义错误页面的公用类库(详见之前的随笔),但是在实际使用时发现如果在 middleware 中发生了异常,则不能显示自定义错误页面,而是返回默 ...

  5. Google Adsense Google判断广告点击作弊的方式和数据 数据分析

    Google判断广告点击作弊的几种方式和数据 - 王庆东mas - 博客园 http://www.cnblogs.com/x-poior/p/5581327.html 作弊广告点击的CTR数据太高网上 ...

  6. nodejs启动web项目

    1.在根目录路径下输入 npm install ,会自动下载所需的包 2.安装完成对应的包以后,npm start,会自动打开浏览器

  7. redis基础2

  8. 编程填空:第i位替换

    编程填空:第i位替换 OpenJudge 总时间限制:1000ms 内存限制:1024kB 描述:写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位和m的第i位相同,其他位和n相同. 请使 ...

  9. linux awk 常见字符串处理

    awk指定输出列: awk '{print $0} file' #打印所有列awk '{print $1}' file #打印第一列 awk '{print $1, $3}' file #打印第一和第 ...

  10. Jvisualvm 添加插件

    1.访问地址:https://visualvm.github.io/pluginscenters.html,找到自己JDK版本对应的插件下载地址(我的JDK版本为1.7.0_67): 2.点击该链接进 ...