位置: 编程技术 - 正文

Linux系统下 源码软件最简单的安装方法(linux源码包)

编辑:rootadmin

推荐整理分享Linux系统下 源码软件最简单的安装方法(linux源码包),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux0.12源码,linux0.01源码,linux0.11源码分析,linux1.0源代码,深入分析linux源代码,深入分析linux源代码,linux1.0源代码,linux源码用什么写的,内容如对您有帮助,希望把文章链接给更多的朋友!

在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包,不同的最终用户经过编译就可以正确运行,这也是非常符合c语言的设计哲学的,一次编写,到处编译么,而常见的二进制包,比如rpm和deb,软件开发者必须为每种特定的平台定制好专门的软件包,这个通过rpm文件的后缀名就可以初见端倪,比如ppc,sparc,i之类,在这里不做过多的陈述,其实源码安装软件远没有很多朋友想象的那么复杂,下面我在这里尽可能详细的做一些陈述,如有谬误,欢迎朋友们拍砖!安装的具体步骤:

安装完成后用来清理临时文件

# make uninstall

复制代码

用来卸载软件解压: 最常见源码包的就两种(XXXX.tar.gz or XXXX.tar.bz2),其实这些源码包都是由2个工具压缩而成的,tar.gz结尾的文件用到的工具是tar和gunzip,而tar.bz2结尾的文件所使用的工具是tar和bzip2,之所以这样做是因为,tar仅仅能够打包多个文件但是没有压缩的功能,而gz和bz2却刚好相反,仅能够压缩单个文件,这样我们常见的源码包实际上是通过tar先将不同的源文件打包,然后再通过gunzip或者bzip2压缩后发布的,当然这两个步骤可以通过一条命令实现:

复制代码

解压的相关命令如下:

复制代码

解压完成就正式开始安装了(补充一点,开始configure之前,如有必要,请使用patch工具为源码打上相应的补丁),首先跳转到源码的解压目录,众所周知,开始configure前还是应该仔细阅读源码目录下的README或者INSTALL文件,好多安装中的注意事项在这里都有所罗列,configure实际上是一个脚本文件,在当前目录中键入"./configure",shell就会运行当前目录下的configure脚本,有一点必须说明,在整个configure过程,其实编译尚未进行,configure仅仅是做编译相关的准备工作,它主要对您当前的工作平台做一些依赖性检查,比如编译器是否安装,连接器是否存在,如果在检测的过程没有任何错误,你很幸运,configure脚本会在当前目录下生成下一步编译链接所要用到的另一个文件Makefile,当然configure支持及其丰富的命令行参数,可以键入"./configre --help"获取具体的信息,最常用的恐怕就是:

它用来设置软件的安装目录. make: 如果configure过程正确完成,那么在源码目录,会生成相应的Makefile文件,Makefile文件简单来说包括的是一组文件依赖关系以及编译链接的相关步骤,事实上真正的编译链接工作也不是make所做的,make只是一个通用的工具,一般情况下,make会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,生成所有相关的目标文件,最后再使用链接器生成最终的可执行程序:

make install: 当上面两个步骤正确完成,代表着编译链接过程已经完全结束,最后要做的就是将可执行程序安装到正确的位置,在这个步骤,普通用户可能没有相关目录的操作权限,临时切换到root是一个不错的选择,"install"只是Makefile文件中的一个标号,"make install"代表着make工具执行Makefile文件中"install"标号下的所有相关操作,如果在configure阶段没有使用"--prefix=/opt/XXX"指定应用程序的安装目录,那么应用程序一般会被默认安装到/usr/local/bin,如果/usr/local/bin已经存在于您的PATH中,那么安装已经基本结束:

Linux系统下 源码软件最简单的安装方法(linux源码包)

#make install

make clean:make uninstall: 这两个步骤只是安装的后续操作,有一点必须注意,"clean"和"uninstall"也是Makefile文件中相应的两个标号,执行这两个步骤的时候Makefile文件必要保留,"make clean"用来清除编译连接过程中的一些临时文件,"make uninstall"是卸载相关应用程序,与make install类似,make uninstall也需要切换到root执行,不过"uninstall"标号在好多Makefile中都被省略掉了,朋友们完全可以自己在相应的Makefile文件一探究竟.Why? 在这里我尝试着解释一下上面这些步骤存在的理由,从C语言的角度来说,一个程序从源码到正确生成相关的可执行文件,下面这些部分必不可少:源文件,编译器,汇编器,连接器,依赖库,通过上面几个步骤,朋友们应该已经知道,真正执行编译链接操作的步骤只有一个(make),那其他步骤存在的理由何在? 有一点是肯定的,我在自己的电脑上使用C语言写一些自娱自乐的小程序,也没有用到"configure or make install"之类的命令,顶多自己写个Makefile管理源文件的依赖关系,可是软件开发者不同,他必须考虑到软件的可移植性,他开发的软件不能仅仅就在他自己的pc上跑吧?不同的平台可能连硬件体系结构都不同,这样就导致了Makefile的不可移植性,为了解决这个问题,开发者通常使用autoconf之类的工具生成相应的configure脚本,而configure脚本就是用来屏蔽相应的平台差异,从而正确生成Makefile文件,然后make再根据configure的劳动成果(Makefile)完成编译链接工作. 至于"install or clean or uninstall",也只是对应着Makefile文件中不同的规则,关于Makefile的详细信息,朋友们可以自行查阅相关的文档.一个例子 下面是我在自己的pc机上源码安装tar工具的过程,权当做是上面这些步骤的一个具体事例吧:

这个是我的系统信息。

解压原文件包,可以发现其中包括了configure脚本和README文件。

建立软件安装目录,并configure,检查configure返回结果,为0代表运行成功.

复制代码

可以看到Makefile文件已经被成功建立.

在建立的Makefile中存在install和uninstall标号

0

make成功

0

安装并简单测试成功。

Linux系统下Shell多线程编程的实例 #!/bin/bash##此例子说明了一种用wait、read命令模拟多线程的一种技巧#此技巧往往用于多主机检查,比如ssh登录、ping等等这种单进程比较慢而不耗费cpu的情

liunx系统下时钟不同步会出现问题 怎么同步Linux 的系统时钟和硬件时钟? linux的系统时钟在很多地方都要用到,要是不准,就会出现一些奇怪的问题;在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。Linux时钟分

巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力的方法 一.什么是tmpfs和/dev/shm/?tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。由此可见,tmpfs主要存储暂存

标签: linux源码包

本文链接地址:https://www.jiuchutong.com/biancheng/366942.html 转载请保留说明!

上一篇:linux系统中如何批量修改图片文件名的案例演示(linux系统怎么弄)

下一篇:Linux系统下Shell多线程编程的实例(shell在linux)

  • 建筑业总产值含税吗百度百科
  • 财务负责人如何解绑
  • 工业企业取得土地收益
  • 购买金税盘维护费会计分录
  • 未确认融资费要还款吗
  • 补提盈余公积的分录
  • 专用增值税发票和普通发票区别
  • 股息红利增值税和企业所得税
  • 收到供应商赠送的发票
  • 增值税普通发票查询真伪
  • 公司办理个人所得税退税
  • 分期手术
  • 固定资产已入账怎么冲销
  • 企业收到免税发票后怎么开票
  • 应交税费待抵扣进项税额
  • 非营利组织对外捐赠
  • 关于公司食堂的文案
  • 金税三期收回长期投资所得税如何申报?
  • 失控发票进项税额转出申报表填写
  • 年金的缴费基数
  • 行政单位库存物资管理办法
  • 充电话费送的
  • 不计入工资薪金所得的有哪些补贴
  • 私立幼儿园收的特色课费可以追回吗
  • 本年利润结转到利润分配是每月都结转还是年底结转
  • 跨年度多计提的社保调整
  • 社保网上申报操作指南
  • 汇算清缴的租赁费怎么算
  • 个人独资企业没有章程
  • hdmi连接电视无法全屏
  • 实收资本或股本账户属于企业的什么账
  • 销售货物货款未收的会计分录
  • 公司清算的补偿方案是不是应该公布了
  • 境外租赁要交什么税
  • 灰狼算法的改进
  • PHP/HTML混写的四种方式总结
  • react组件库有哪些
  • 经验模态分解和变分模态分解
  • ts类型声明 要为某个文件里的变量声明吗
  • 防伪税控开票系统安装
  • 新建配电房需要哪些手续
  • 上年科目记错如何更正
  • 织梦怎么改网站主页
  • 快速显示隐藏单元格
  • mongodb从入门到商业实战
  • 增值税品种
  • 增加固定资产原值50%以上
  • 进口商品采购流程及时间
  • sql多条记录取一条
  • 工资发放凭证原件指什么意思
  • 企业返聘退休人员需要交社保吗
  • 出货后90天付款
  • 个人所得税规定的免纳个人所得税的范围
  • 增值税申报表里期初未缴税额是什么意思
  • 车辆购置税如何账务处理
  • 企业土地补偿款如何做账
  • 其他货币资金包含的内容
  • mysql按字节截取
  • mysql增删改查实例
  • xp系统弹出帮助和支持
  • wave editor教程
  • win8最新版本
  • mac 菜单
  • ubuntu听音乐
  • android linux deploy
  • macbookair怎么验证
  • win1020h2版本要更新多久
  • win7系统添加右键菜单在哪里设置
  • linux 怎么样
  • unity3ds
  • plugin怎么安装
  • jQuery使用ajax方法解析返回的json数据功能示例
  • python中字符
  • 菜鸟 javascript
  • 电子税务局打印发票提示本机未检测到
  • 增值税发票综合服务平台升级
  • 开电子发票流程步骤
  • 个税已申报税额为0是什么意思
  • 甘肃省国家税务局
  • 船舶吨税多少天缴纳一次
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设