2018-3-24Linux系统管理(13)程序包管理(3)yum前端配置及编译
我们在这一章当中继续讲述yum命令,而后我们简单讲述一下源代码安装包的编译及使用。
一、yum的命令行选项
yum的命令行选项:--nogpgcheck:禁止进行gpg check;-y:自动回答为"yes";-q:静默模式;--disablerepo=repoidglob:临时禁止指定的repo;--enablerepo=repoidglob:临时启用指定repo;--noplugins:禁用所有插件;
二、yum的repo配置文件中可用的变量
http://mirrors.china.org/centos/6/i386/oshttp://mirrors.china.org/centos/6/x86_64/oshttp://mirrors.china.org/centos/7/x86_64/os
第一:使用变量来判断当前系统架构及发行主版本;第二:获取平台及平台架构;
yum的repo配置文件中可用的变量:$releasever:当前OS发行版的主版本号;$arch:平台;$basearch:基础平台;$YUM0-$YUM9https://mirrors.aliyun.com/centos/$releasever/$basearch/os
2.1 创建yum仓库
创建yum仓库:createrepo [options] <directory>
而对于选项来说,大部分是可以省略的,或者说一个都没有照样可以将该命令运行。具体使用如下:
# mkdir httpd # mv httpd-2.4.25.tar.gz httpd # cd httpd/ # createrepo httpd/ Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
创建成功之后,我们进入httpd目录下的repodata目录,显示并查看,该压缩文件的命名方式都是由UUID格式命名组成。
# cd httpd/repodata/ # ls 01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2 401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz 5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2 6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz 7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2 dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz repomd.xml
三、程序包的编译安装
但需要注意一点的是,里面的rpm包是没有经过编译的,都需要经过编译成为二进制才能够使用。
testapp-VERSION-release.src.rpm --> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;
源代码 --> 预处理 --> 编译(gcc) --> 汇编 --> 链接 --> 执行
源代码组织格式:多文件;文件中的代码段之间,很可能存在跨文件依赖关系;
C\C++: make (configure --> Makefile.sh --> makefile)java: maven
C编译安装三步骤:./configure:(1) 通过选项专递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile。(2) 检查以来到的外部环境。make:根据makefile文件,构建应用程序;make install安装到指定路径中;
不过可能以上文件在源代码包中可能不会自带,不过可以自动生成该文件脚本及构建开发的应用程序,其开发工具项目为:
开发工具:autoconf:生成configure脚本;automake:生成Makefile.in
所以安装任何一个源代码时,需要注意INSTALL文档和README文档。
建议:安装前查看INSTALL, README
3.1 编译包获取
那么编译包的获取一般为两种方式,一种是直接进入官方或者是开源协议站点,另一个是在某个代码托管网站上去进行查找。
开源程序源代码的获取:官方自建站点:apache.org (ASF)mariadb.org...代码托管:SourceForgeGithub.orgcode.google.com
在之前我们讲过,对于系统级开发来说,我们使用的是C/C++或Go语言去研发的,而对于应用级开发来说,我们可以使用Java/Python等编程语言进行研发。
c/c++:gcc (GNU C Complier)
3.2 编译C源代码
编译C源代码程序,刚才也讲过了,无非也就是三步骤,值得需要注意的是,要想编译安装程序包,需首先提供开发环境。
编译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.shexport PATH=/PATH/TO/BIN:$PATH(2) 导出库文件路径;编辑/etc/ld.so.conf.d/NAME.conf添加新的库文件所在路径至此文件中;让系统重新生成缓存;ldconfig [-v](3) 导出头文件基于链接的方式实现;ln -sv(4) 导出帮助手册编辑/etc/man.config手册添加一个MANPATHMANPATH /PATH/TO/SOMEFILE
转载于:https://blog.51cto.com/tianxie/2091473
2018-3-24Linux系统管理(13)程序包管理(3)yum前端配置及编译相关推荐
- linux程序包管理rpm,yum和编译安装以及冒泡排序练习
linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇 ...
- Linux程序包管理(yum)
YUM(Yellowdog Update Modifier):是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装 ...
- linux 包管理工具dnf,Linux 程序包管理 rpm yum dnf
Linux程序包管理:包管理器功能:打包,包管理(安装,升级,卸载,查询,校验) 目前Linux中最常见有两种常用工具deb:debian Linux使用 包括ubuntu rpm:Redhat Pa ...
- Linux程序包管理,YUM命令使用解析。
在使用Linux的朋友,肯定会遇到软件包安装的问题,今天我来和大家一起学习一下YUM的使用. YUM (Yellow dog Updater Modified ): 是一个在Fedora和RedHat ...
- 程序包管理rpm、yum与简单编译安装程序
Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...
- 软件版本命名sig_LIUNX中程序包管理
LIUNX中程序包管理 此内容仅为笔记,这一两天给会重新整理补充上操作示例. 一.基础 1.程序描述: 第一种描述: 程序+数据 第二种描述: 算法+数据结构 2.程序的组成部分: 1.二进制程序 ...
- Linux下程序包管理工具RPM
实验环境: CentOS release 6.6 (Final) 一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...
- Kubernetes之(二十)Helm程序包管理器
目录 Kubernetes之(二十)Helm程序包管理器 概念 部署Helm 下载helm 部署Tiller helm的使用 chart 目录结构 chart模板 定制安装 MySQL chart c ...
- javascript原理_JavaScript程序包管理器工作原理简介
javascript原理 by Shubheksha 通过Shubheksha JavaScript程序包管理器工作原理简介 (An introduction to how JavaScript pa ...
最新文章
- ScrollView充满屏幕
- C# 面向对象之继承后初始化顺序
- python 获得两个数组(List)交集、并集与差集
- Boost::context模块fiber的分段的测试程序
- IO-BufferedInputStream
- 数学告诉你家庭关系的奥秘
- c#读取指定字符后的字符_在C#中读取字符的不同方法
- java 常见 错误_JAVA几个常见错误简析
- [Unity] ACT 战斗系统学习 7:使用 ScriptableObject 制作角色属性 2
- C++ 返回类型协变
- FFmpeg源代码简单分析:makefile
- 查询接待收待飞地数量失败_中国有哪些飞地?
- 多媒体计算机辅助英语教学,多媒体计算机辅助小学英语教学探讨
- 安装老版本flash - 解决”正尝试安装的adobe flash player不是最新版本“的办法
- (3)Mathpix Snipping Tool——公式截图获取工具(转为LaTex、MarkDown格式)
- 微信服务号、订阅号和企业号的差别(运营和开发两个角度)
- 参加门票6800的QCon大会,是怎样的体验?
- Principles of fMRI 1课程笔记7--fMRI数据的时间分辨率和空间分辨率
- Content Delivery Networks CDN 内容分发网络
- matlab 将图片转为视频
热门文章
- h5页面如何预览excel文件_如何让excel文件读取变得更简单
- excel有必要用python_为什么Python比VBA更适合自动化处理Excel数据?
- oc之Mac-响应链(Responder Chain)
- netty源码解解析(4.0)-3 Channel的抽象实现
- shrio的rememberMe不起作用
- iOS开发UI篇—Quartz2D使用(绘图路径)
- The Child and Sequence
- 关于 hibernate 官网的例子 出现的问题
- 利用VC检测程序内存溢出(转)
- Ubuntu18.04.3虚拟机安装步骤图文教程