位置: 编程技术 - 正文

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)

  • 进项税转出的会计凭证
  • 公司申报个税流程
  • 其他应付款辅助核算可以设置职员吗
  • 佣金收入交什么税费
  • 已付的账款叫什么
  • 劳动保护费现金流量表项目
  • 企业所得税申报表在哪里打印
  • 金税三期个人所得税税率
  • 汽车按揭费用收合法吗?
  • 应纳税所得额计算公式excel
  • 印花税按次申报和按期申报区别
  • 广告制作选哪个专业好
  • 一般纳税人购进货物用于免征增值税项目
  • 发票显示不抵扣什么意思
  • 简述房地产开发企业设立的特殊规定
  • 印花税年度申报表怎么填
  • 小规模库存商品结转成本太低怎么办
  • 房地产销售佣金表格模板
  • 顶账的固定资产怎么入账
  • macbookair网页全屏
  • autorun.exe
  • php中split
  • 生产企业免抵退税实例
  • php中定义常量的函数是什么
  • 企业所得税必须要季度缴纳吗
  • vuecli打包项目
  • 低代码开发开源
  • 基于php判断客户是否存在
  • 什么是政府项目档案
  • 用盈余公积弥补亏损会影响所有者权益吗
  • 委托加工物资如何做账
  • vscode yaml插件
  • 增值税增量留抵退税计算
  • sqlserver获取uuid
  • 商业折扣影响主营业务成本吗
  • 固定资产盘盈为何要交所得税
  • 权责发生制根据产品的生产特点和管理要求结转成本
  • 疫情期间提涨薪合适吗
  • 企业进项税率是多少
  • 其他所得
  • 车船税手续费返还时间
  • 专项应付款二级科目
  • 本月未过账的凭证怎么写
  • 电信收据可以报销吗
  • 日记账是否必须全部建立
  • mysql 随机io
  • 总结下半年工作计划
  • xbox无法连接无线网络
  • window终端是什么
  • win2003peiso
  • linux的tar命令详解
  • Fedora 9 texlive + vim-latex + kile安装配置
  • linux防火墙设置firewalld
  • ezulumain.exe是病毒进程吗 ezulumain进程安全吗
  • kill强制结束进程的参数
  • 怎么彻底删除win11安全中心
  • smss.exe什么意思
  • w10 2021年更新
  • win7主题服务未运行怎么办
  • win7系统怎么删除输入法
  • linux conio
  • windows8窗口
  • linux 日历
  • android 程序开发
  • shell中的循环语句有哪些
  • cocos2djs
  • kindeditor获取内容
  • cacls命令怎么运用
  • python内置函数用来打开或创建文件并返回文件对象
  • python中while用法
  • python wms
  • nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
  • python库怎么用
  • js object的原型
  • jabsorb笔记_几个小例子第1/2页
  • jquery访问本地html
  • 基层税务所工作现状
  • 新车怎么上深圳牌
  • 甘肃省国家励志奖学金证书打印网址
  • 河南旧县为什么叫新县
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设