查看“Linux包管理:源码安装”的源代码
←
Linux包管理:源码安装
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Linux]] == 关于 == Linux下程序大都是由以下几部分组成: {| class="wikitable" ! 内容 !! 路径 |- | 二进制文件 | /usr/local/bin |- | 库文件 | /usr/local/lib |- | 配置文件 | /usr/local/etc |- | 帮助文档 | /usr/local/man |} * /bin、/lib、/etc 中保存了系统基础的、大部分程序都会用到的内容; * /usr 是很多用户程序的默认安装路径; * /opt(默认为空)安装额外软件可以放在这个里面【?比如Oracle】 == 安装步骤 == [[File:Linux源码安装步骤.png|800px]] 安装的具体步骤: <syntaxhighlight lang="bash"> # 解压源码包 $ tar zxvf XXXX.tar.gz (or tar jxvf XXXX.tar.bz2) # 定位到源文件 $ cd XXXX # 环境检测 $ ./configure --prefix=? # 源码编译 $ make # 安装 $ make install </syntaxhighlight> 清理安装后的临时文件: <syntaxhighlight lang="bash"> $ make clean </syntaxhighlight> 卸载软件: <syntaxhighlight lang="bash"> # make uninstall </syntaxhighlight> == 安装过程 == === 解压源码包 === <pre> 最常见源码包的就两种(XXXX.tar.gz or XXXX.tar.bz2),其实这些源码包都是由2个工具压缩而成的: tar.gz结尾的文件用到的工具是tar和gunzip, 而tar.bz2结尾的文件所使用的工具是tar和bzip2, 之所以这样做是因为,tar仅仅能够打包多个文件但是没有压缩的功能,而gz和bz2却刚好相反,仅能够压缩单个文件,这样我们常见的源码包实际上是通过tar先将不同的源文件打包,然后再通过gunzip或者bzip2压缩后发布的,当然这两个步骤可以通过一条命令实现: tar zcvf XXXX.tar.gz XXXX (or tar jcvf XXXX.tar.bz2 XXXX) </pre> 解压的相关命令如下: <syntaxhighlight lang="bash"> $ tar -zxvf xxxx.tar.gz $ tar -jxvf xxxx.tar.bz2 </syntaxhighlight> # -z:通过gzip指令处理备份文件 # -x:从备份文件中还原文件 # -v:显示指令执行过程 # -j:通过bzip2指令处理备份文件 # -f:指定备份文件 # -c:建立新的备份文件 === ./configure === 关于“./configure”: # configure实际上是一个脚本文件,在当前目录中键入“./configure,shell”就会运行当前目录下的configure脚本; # configure仅做编译相关的准备工作,执行后将生成MakeFile文件; #: 设置编译特性 #: 检查编译环境 *(configure前应该阅读源码目录中的README、INSTALL文件,涉及到安装中的注意事项) * 可以键入“./configre –help”获取具体的信息; 设置软件的安装目录: <syntaxhighlight lang="bash"> $ cd xxxx $ ./configure --prefix=/opt/xxxx </syntaxhighlight> * 常用的安装路径:“/usr/local/xxxx”、“/opt/xxxx” 检查configure返回结果,为0代表运行成功: <syntaxhighlight lang="bash"> $ echo $? 0 </syntaxhighlight> === make === 关于编译相关: #(Makefile文件,简单来说包括了一组文件依赖关系以及编译链接的相关步骤) # make只是一个通用的工具,并不做编译链接工作,而会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,生成所有相关的目标文件;(编译) # 最后再使用链接器生成最终的可执行程序;(链接) 编译源码: <syntaxhighlight lang="bash"> $ make </syntaxhighlight> 检查是否编译成功,为0代表运行成功: <syntaxhighlight lang="bash"> $ echo &? 0 </syntaxhighlight> === make install === 关于make install: # (普通用户如果没有相关目录的操作权限,可以临时切换到root) # “install”只是Makefile文件中的一个标号,“make install”代表着make工具执行Makefile文件中“install”标号下的所有相关操作; # 如果在configure阶段没有使用”–prefix=/opt/XXX”指定应用程序的安装目录,那么应用程序一般会被默认安装到/usr/local/bin; # (如果/usr/local/bin已经存在于您的PATH中,那么安装完成不用再进行环境等的配置) 开始安装 <syntaxhighlight lang="bash"> $ make install </syntaxhighlight> === 后续 === 关于“make clean”与“make uninstall”: # “clean”和“uninstall”同“install”一样,也是Makefile文件中相应的两个标号,执行这两个步骤的时候Makefile文件必须存在; # “make clean”用来清除编译连接过程中的一些临时文件; # “make uninstall”是卸载相关应用程序,也需要切换到root执行; == 配置过程 == === PATH环境变量 === 修改PATH环境变量,以能够识别此程序的二进制文件路径: # 修改/etc/profile文件,在文件中添加: <syntaxhighlight lang="bash"> export PATH=$PATH:/path/to/somewhere </syntaxhighlight> #* “/path/to/somewhere”替换为可执行文件所在的目录; # 然后执行命令,以使修改生效: <syntaxhighlight lang="bash"> $ source /etc/profile </syntaxhighlight> === 增加库文件路径 === * 有的程序不提供库文件,则不需要此设置; 默认情况下,系统搜索库文件的路径“/lib”、“/usr/lib”,要增添额外搜寻路径: # 在“/etc/ld.so.conf.d/”中创建以“.conf”为后缀名的文件,而后把要增添的路径直接写至此文件中,如“mysql.conf”: #: <syntaxhighlight lang="bash"> /www/server/mysql/lib </syntaxhighlight> # 然后执行如下命令使其生效: <syntaxhighlight lang="bash"> $ ldconfig </syntaxhighlight> === 增加头文件路径 === * 如果程序提供了库文件,也会相应的提供头文件,一般在安装目录的include目录下; 系统默认扫描头文件的路径是:“/usr/include”,要增加额外搜索路径: # 在“/usr/include”下用链接连接到我们安装程序的头文件: #: <syntaxhighlight lang="bash"> ln -s /opt/xxxx/include /usr/include/xxxx </syntaxhighlight>
返回至“
Linux包管理:源码安装
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息