一 开放源码的软件安装和升级简介
1 Linux上面的软件几乎都是经过GPL的授权,所以每个软件几乎均提供源代码,并且你可以自行修改程序代码
2 在Linux系统上面,一个文件能不能被执行看的是有没有可执行的那个权限(具有x权限),不过Linux上面真正识别的可执行文件其实是二进制文件,例如/usr/bin/passwd
3 程序代码文件其实就是一个一般的纯文本文件,在完成这个源码文件的编写之后,再来就是要将这个文件“编译”成为操作系统看的懂的二进制文件,而要编译自然要写“编译程序”来操作,经过编译程序的编译与链接之后,就会生成一个可以执行的二进制程序
4 总之,我们可以这么说
开放源码:就是程序代码,写给人类看的程序语言,但机器不认识,所以无法执行
编译程序:将程序代码转译成为机器看得懂的语言,就类似翻编者的角色
可执行文件:经过编译程序变成二进制程序之后机器看得懂的所以可以执行的文件
5 函数库类似子程序的角色,可以被调用来执行的一段功能函数。分为静态函数库和动态函数库
6 有的时候有一堆的程序代码文件,我们需要去手动编译,但是很多编译命令让我们写到疯掉,这个时候我们可以利用make这个命令的相关功能来进行编译过程的命令简化
7 当执行make 的时候,make会在当前的目录下搜索Makefile这个文本文件,而Makefile里面则记录了源码如何编译的详细信息,make会自动判别源码是否经过变动而自动更新执行文件
8 makefile是怎么产生的呢?一般我们在当前的目前下会有一个configure,这个configure检测程序可以找到所需函数库,编译器及其他资料
9 所谓的Tarball文件,其实就是将软件的所有源码文件先以tar打包,然后再以压缩技术来压缩,通常最常见的就是gzip来压缩了,因为利用了tar和gzip的功能,所以tarball的文件一般的扩展名为*.tar.gz或者是*.tgz
10 一个软件的tarball是如何安装的呢,基本流程是这样的
1 将tarball由厂商的网页下载下来
2 将tarball解压缩,生成很多的源码文件
3 开始以gcc进行源码的编译(会生成目标文件)
4 然后以gcc进行函数库,主程序,子程序的链接,以形成主要的二进制文件
5 将上面的二进制文件以及相关的文件配置安装到自己的主机上面
二 使用传统程序语言进行编译的简单范例
1 在默认的情况下,如果我们直接以gcc编译源码,并且没有加上任何参数,则执行文件的文件名会被自动的设置为a.out这个文件名
2 gcc的简易用法
1 gcc -c tmp.c
-c参数是仅将源码编译成为目标文件,并不制作链接等功能
会生成tmp.o这个文件,但是并不会生成可执行文件
2 gcc -o tmp.c -c
-o参数在编译的时候,依据操作环境给予优化速度
会自动的生成tmp.o这个文件,并且进行优化
3 gcc tmp.c -lm
-lm指的是libm.so或libm.a这个函数库文件
4 gcc -o main tmp.c -wall
-o tmp指定生成的可执行文件为main
-wall 会把详细的信息列出
三 Tarball的管理与建议
1 Tarball安装的基础操作大多是以下流程:
1 取得源文件:将tarball文件在/usr/local/src目录下解压缩
2 取得步骤流程:进行新建立的目录下面,去查阅INSTALL与README等相关文件内容
3 相关属性软件安装:根据INSTALL/README的内容查看并安装好一些相关的软件
4 建立makefile:以自动检测程序configure检测操作环境,并建立Makefile这个文件
5 编译:以make这个程序并使用该目录下的Makefile作为它的参数配置文件,来进行编译的操作
6 安装:以make这个程序,并以Makefile这个参数配置文件,以及install这个目标的指定来安装到正确的路径
2 所谓的更新源码只是更新少部分,很多的软件开发商在更新了源码之后,都会发布所谓的patch file
3 我们只要下载了patch file就能够对你的软件源码更新了,只不过更新了源码并非软件就更新,我们还需要将该软件进行编译後才会是最终的正确的软件,因为patch的功能主要是更新源码而已
4 我们可以使用MD5这个指纹验证机制来判断该文件有没有被改动过
分享到:
相关推荐
chromium-source-tarball, 自动生成 Chromium的源代码 tarball Chromium 源 tarball自动为 Chromium 发布通道生成源代码 ...不同于只包含针对Linux打包器的Linux的官方源代码 tarball,这个 repo 中的源代码tarball
Capistrano::Tarball 注意:此插件仅适用于 Capistrano 3。 关于 Capistrano Tarball 插件允许通过 tarball 部署您的应用程序。 该插件为您执行以下操作: 将您的源代码/编译后的二进制文件打包成 tarball。 将 ...
NPM软件包tarball和package.json元数据的有思想的linter。 npx npm-pkg-lint 核心原则: 根据规范,技术上有效的方法并不总是最好的,更严格的子集使工具变得更容易且不那么模糊。 本机功能比第三方代码更好。 更...
软件安装(压缩+rpm+yum+tarball源代码
Concoure 管道 - 创建 BOSH 发布 tarball 并保存到 S3 从其 git 存储库创建 BOSH 版本的开发版本,并作为 tarball 上传到 S3。 示例credentials.yml : aws-bosh-init-bucket : my-bucket aws-access-key-id : ...
To install MONyog on these systems the .tar.gz (tarball) package should be used. After downloading the package, the following command can be used to extract: $ tar -xf <MONyog_package>.tar.gz ...
看不到源码索尔 - 08052016 在 Vagrant VM 上设置 solr。 步骤#1 打开 Git-Bash -> 开始菜单,输入 Git bash 步骤#2 检查 vagrant 是否安装 $ which vagrant 步骤#3 如果安装了 VirtualBox -> 开始菜单 -> 输入 ...
这是最新版,彩色的;linux入门经典教材,...第22章 软件安装:源码与Tarball 第23章 软件安装:RPM、SRPM与YUM功能 第24章 X Window设置介绍 第25章 Linux备份策略 第26章 Linux内核编译与管理 附录A 快速索引
安装python分三个步骤: *下载python *安装python *检查是否安装成功 1、下载Python ...注意Linux和CentOS自带python,一般不用再下载python。 macOS 64-bit/32-bit installer:Mac电脑32位系统版本
Tomcat 6.0.20 for Linux (Tarball) gz格式
ROSE的配置和构建过程 总结 一.相关参考资料 1. 2. 3.[ROSE github]github提供开发版本和发布版本,地址分别为: 4. 5. 6. 7. 二.ROSE的软件依赖 仅仅列出必须部分软件依赖,完整的软件依赖请参考,。 ROSE的软件...
根据以下之一下载所有的tarball: 本地package-lock.json文件 网址到package-lock.json 包装名称 本地package.json文件 网址到package.json 搜索关键词 安装 npm install node-tgz-downloader -g 用法 来自代码:...
适用于Linux系统的Arm嵌入式工具链gcc-arm-none-eabi5.4,工具包格式:Linux installation tarball,已编译,解压可用,可以编译CortexA/R/M系列架构的处理器,官网链接:...也可自行下载。
1) Extract the contents of the sensors tarball: tar -zxvf bam_unix_latest.tar.gz 2) Change into the new sensors directory: cd bam_unix 3) Compile all the source code: make 4) If no errors were ...
焦油映射流tarball 标头的流映射 npm install tar-map-stream用法 var map = require ( 'tar-map-stream' )// map returns a duplex streamvar stream = map ( function ( header ) { // this function is run on ...
它支持NixOS和Linux。 安装 从Nixpkgs安装发行版本: nix-env -iA nixpkgs.cached-nix-shell 或者,从GitHub安装最新的开发版本: nix-env -if https://github.com/xzfc/cached-nix-shell/tarball/master 用法 ...
第7章 Linux文件和目录管理 第8章 Linux磁盘与文件系统管理 第9章 文件的压缩与打包 第三部分 学习Shell和Shell脚本 第10章 vi文字处理器 第11章 认识Bash Shell 第12章 正则表达式 ...
一个Golang CLI,允许用户将Docker卷加载并保存为tarball。Narwhal Go一个Docker Utility CLI,其中包含帮助您进行开发的命令。 该工具包含危险命令,我们不建议您在生产环境中安装安装Narwhal可在各种平台上安装...
Jetty 安装的 Ansible 角色从 tarball 安装 Jetty web-server。 它的灵感来自模块,并尝试为 Ansible 做同样的事情。角色变量jetty_version 将要安装的 Jetty 版本。 (默认为9.2.3.v20140905 。) jetty_host 听...
v5之前的pnpm版本使用了此软件包。...解包流解压tarball流安装npm i -S unpack-stream用法'use strict'const got = require ( 'got' )const unpackStream = require ( 'unpack-stream' )const tarball = '...