位置: 编程技术 - 正文

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)

  • 对方公司为什么一定要专票
  • 设备检验检测
  • 计提工资时个税怎么处理
  • 预付账款对方公式怎么算
  • 一般纳税人租赁费税率5%是简易征收吗?
  • 无偿使用场地涉及的问题
  • 多少金额以下可以一次性费用
  • 税款的汇兑损益如何做账
  • 会计做账写错了怎么办
  • 公司电视机 摊销多少年
  • 简易计税项目税金要计入成本吗
  • 独立账户负债核算内容
  • 没残值的固定资产有哪些
  • 企业所得税年报补报
  • 变更法人流程具体流程图
  • 大型医用设备维修效益成本分析 课件ppt
  • 个人抬头发票能开专票吗
  • 国税局代开增值税专票要哪些资料?
  • 所得税工资账载怎么算
  • 小规模企业企业所得税优惠政策2022年
  • 购置税和购车税一样吗
  • 发票失联企业不处理的后果
  • 支付工程款会计处理
  • 保税区开出的专票可以抵扣吗
  • 鸿蒙系统怎么关闭负一屏
  • 公司购买自己公司的产品
  • 电脑开机时出现用户账户控制提示
  • aliapp.exe是什么意思
  • php简单实例
  • 又十个超级有用的PHP代码片段
  • PHP:zip_read()的用法_Zip函数
  • 代理买卖证券款属于什么科目
  • 稳岗补贴支付范围
  • 森佩塑胶
  • 机关单位工会经费提取比例
  • php大于等于号怎么打
  • php生成随机数不重复
  • 存货捐赠视同销售要不要确认收入?
  • vscode插件vuter
  • 税控技术服务费280元怎么抵减申报不成功
  • 进项抵销项的会计分录
  • 帝国cms怎么用
  • 预缴税款表怎么打印出来
  • 增值税专用发票电子版
  • mongodb数据查询
  • 如何查询金税盘发票金额及开票数量
  • 分公司非独立核算怎么报税
  • 建立access数据库一般需要五个步骤
  • 跨年的房租费用怎么做账
  • 防伪开票系统打不开
  • 出售子公司股权给其他公司
  • 关于工程施工的法律法规
  • 进出口 外汇
  • 员工工伤申请流程
  • 分公司交总公司管理费怎么做账
  • 强化劳务输出
  • 一次性伤残补助金是单位给的还是社保给的
  • 公司租用房屋用交房产税吗
  • 外币财务报表的折算
  • 周转金怎么计算
  • 房地产开发企业建造的商品房,在出售前
  • sqlserver数据库恢复挂起状态
  • 存储过程sql server
  • mac 显示器
  • 三星笔记是干什么用的
  • vmwarevmx进程是干嘛的
  • win7如何开启VT
  • win10系统d盘变成e盘,进入winpe盘符正常
  • imac 5k屏幕参数
  • linux 根目录
  • 安装软件报错1606
  • win10系统代理在哪
  • Unity3d_NGUI和UGUI的学习
  • pycharm下载安装
  • 不错的mod_perl编程的简单应用实例介绍
  • Bullet(Cocos2dx)之内存泄露检测
  • javascript判断语句
  • 猫的所有视频
  • 综合征收和分类征收
  • 办公厅机构设置方案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设