linux程序安装及包管理
程序包的封装类型:
RPM软件包:扩展名为“.rpm”,使用rpm命令安装。
DEB软件包:扩展名为“.deb”,使用DPKG包管理器。
源代码软件安装:程序员开发完成的原始代码,一般制作成“.tar.gz”,“.tar.bz2”等格式的压缩包文件,需要使用相应的工具编译安装。
附带安装程序的软件包:软件包中会提供用于安装的可执行程序或脚本,如install.sh、setup等。
获取程序包的途径:
1)系统发行版的光盘或官方的服务器,
CentOS镜像:
https://www.centos.org/download/ http://mirrors.aliyun.com http://mirrors.sohu.com http://mirrors.163.com
2)项目官方站点
3)第三方组织:fedora-EPEL
4)自己制作:注意检查包的完整性
rpm包管理器:
将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作。
rpm命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
rpm命令基本选项:
-h 以#显示程序包管理执行进度
-v 显示安装过程中的详细信息
-i 安装一个新的rpm包
-e 卸载指定名称的软件包
-U 升级系统中某个软件包
-F 检查并更新系统中的某个软件包
--test 只进行升级测试
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
rpm -ivh --nodeps software_name 强制安装,安装了之后不一定能用
rpm -ql software_name 查看软件安装目录
rpm -qi sotware_name 查看软件安装的版本信息
rpm -Uvh software_name 软件升级
rpm -e software_name 软件卸载
rpm -e --nodeps software_name 强制卸载
查询选项:
-qa 显示当前系统中所以以rpm方式安装的软件列表
-qi 查看指定软件包的名称、版本、用途描述等详细信息
-ql 显示指定软件包在系统中安装的所有目录、文件列表
-qf 查看指定文件或目录是由哪个软件所安装的
已安装的包校验:
rpm {-V|--verify} [select-options] [verify-options]
校验软件包中的文件:
rpm -K|checksig rpmfile 检查包的完整性和签名
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 导入所需的公钥
--initdb 初始化rpm数据库
--rebuilddb 重建rpm数据库
yum源:
rpm的前端程序,用来解决软件包相关的依赖性,可在多个库中定位软件包
yum命令:
yum [options] [command] [package ...]
-e 静默执行
-y 自动应答yes
deplist 列出包依赖
list 列出程序包
info 查看包信息
install 安装程序包
reinstall 重新安装
update 更新程序包
downgrade 降级
check-update 检查可更新的包
remove 卸载程序包
clean 清除缓存
makecache 构建缓存
search [关键字] 搜索包
history 查看yum事物历史
groupinstall 包组管理
yum客户端配置文件:
/etc/yum.conf 为所有仓库提供公共配置
/etc/yum.repos.d/*.repo 为仓库的指向提供配置
/var/log/yum.log yum日志文件
仓库指向的定义:
[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}
repo配置文件中可用变量
$releasever: 当前OS的发行版的主版本号 $arch: 平台,i386,i486,i586,x86_64等 $basearch:基础平台;i386 $YUM0-$YUM9:自定义变量
创建yum仓库:
createrepo [options] <directory>
第三方源:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
程序包编译安装:
基本过程:
1)下载源代码安装包,解压到指定目录
2)./configure配置,设置安装的目标路径,选择安装的功能模块
3)make编译,通过makefile文件将源代码变成可执行的二进制文件
4)make install安装,将编译好的二进制文件复制到系统中,并设置应用环境
编译过程:源代码->预处理->gcc编译->汇编->链接->执行
- 在Clion的IDE中指定命令行参数
- CentOS6 安装并破解Jira 7
- Martin Odersky访谈录所思
- 解决Boost库链接出错问题
- 引入Option优雅地保证健壮性
- java正则校验,密码必须由字母和数字组成
- Spring Boot集成JasperReports生成PDF文档
- Redux框架reducer对状态的处理
- 使用Spring Cloud Security OAuth2搭建授权服务
- Nginx性能优化
- linux 如何正确的关闭mongodb
- 运用Aggregator模式实现MapReduce
- vue 2 使用Bus.js进行兄弟(非父子)组件通信 简单案例
- spring boot项目在外部tomcat环境下部署
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- pyecharts 嵌入 PyQt5
- CS学习笔记 | 15、枚举的命令和方法
- WFD_RTSP交互包分析
- Linux阅码场 - Linux内核月报(2020年07月)
- WifiDisplay(Miracast)技术原理及实现
- Java常用设计模式--观察者模式(Observer Pattern)
- Java常用设计模式--适配器模式(Adapter Pattern)
- Java常用设计模式--装饰器模式(Decorator Pattern)
- Java常用设计模式-单例模式(Singleton Pattern)
- Java常用设计模式--三种工厂模式之简单工厂模式(Simple Factory)
- Java常用设计模式--三种工厂模式之工厂模式(Factory Pattern)
- Java常用设计模式--三种工厂模式之抽象工厂模式(Abstract Factory Pattern)
- Mongodb只读副本集如何切换到读写模式
- Java常用设计模式--策略模式(Strategy Pattern)
- Mongodb只读副本集如何切换到读写模式(下)