tarball方式编译安装及升级-make、patch
来源:互联网 发布:周琪院士知乎 编辑:程序博客网 时间:2024/06/06 12:21
1、概念:
原码进行编译成二进制机构可执行程序,先要make与侦测程序一般是config一起生成编译连接文件makefile,再由makefile编译成可执行文件。
Tarball其实是原码的tar打包与压缩的包。
rpm是指linux商家帮你编译好了,省去了长时间编译而发布的包,但不同类型的系统就不能用。
函数库即提供外部调用的,有点像dll。
2、gcc,是C语句的编译器,一般是先编译成目标文件,再连结成一个可执行文件。
3、make可以方便进行编译,因为它把要编译的命令及顺序都写到makefile这个文件里了。
4、makefile文件放在程序的原码里的一级目录,它的语法:
[root@www ~]# vi makefile
LIBS = -lm #这是变量
OBJS = main.o haha.o sin_value.o cos_value.o
CFLAGS = -Wall
main: ${OBJS}
gcc -o $@ ${OBJS} ${LIBS} <==那个 $@ 就是 main !$@ 代表目前的标的(target)
clean:
rm -f main ${OBJS}
#标的:有相关性原代码文件
#第二行开头要tab一下,这一行就是执行的命令,如脚本命令
5、具体目录规则如下:
a、最好将 tarball 的原始资料解压缩到 /usr/local/src 当中;
b、安装时,最好安装到 /usr/local 这个预设路径下;
c、考虑未来的反安装步骤,最好可以将每个软体单独的安装在 /usr/local 底下;
d、为安装到单独目录的软体之 man page 加入 man path 搜寻:如果你安装的软体放置到 /usr/local/software/ ,那么 man page 搜寻的设定中,可能就得要在 /etc/man.config 内的 40~50 行左右处,写入如下的一行:
MANPATH /usr/local/software/man
这样才可以使用 man 来查询该软体的线上文件啰!
6、侦测配置程序./configure --help ,可以查看支持参数及说明
一般有的参数是安装到哪个目录的参数:--prefix=/path
7、一般的步骤(以ntp为例):
cd /usr/local/src
tar -zxvf /root/ntp-4.2.4p7.tar.gz
cd ntp-4.2.4p7/
cat INSTALL
./configure --help | more
./configure --prefix=/usr/local/ntp
make clean; make
make check #此步如果不检测也行
make install
8、原码进行更新升级:
a、cat ~/main_0.1_to_0.2.patch #查看第一行它的相对目录是什么样的
b、用patch -p数字 < patch_file进行更新,这里的数字表示旧的目录要去掉几个/,如果不去则用patch -p1 < patch_file,要根据a步来判断。如main-0.1/xxx 与 main-0.2/xxx 进行对比,而你现在就在main-0.1目录下,那么可以这样patch -p1 < ../main_0.1_to_0.2.patch
c、一般会发布更新包,以.patch为后缀,且会标明从什么版本到什么版本,不能跨多版本升级的,要顺序升级,如跨了多个更新包,则要把之前的更新包一个个更新
d、make clean; make
make check #此步如果不检测也行
make install
如果报错,可能就需要执行一下./configure,patch只是更新了有变化的原代码而已。
e、如果 patch 错误呢?我们的 patch 是可以还原的啊!透过patch -R < ../main_0.1_to_0.2.patch 即可。(main_0.1_to_0.2.patch只是个例子)
- tarball方式编译安装及升级-make、patch
- 使用tarball以编译原码方式安装软件
- Hue 3.9 Tarball安装及界面一览
- tarball安装
- tarball升级cdh
- linux下源码的编译与安装Tarball套件管理程序
- 静默方式安装10g数据库软件+升级patch+手工建库
- chromium tarball编译步骤
- 编译代码与Tarball
- HUE3.9 Tarball安装
- Tarball源码安装
- tarball的安装
- 一般Tarball 软件安装的建议事项 (如何移除?升级?)
- Twister编译及安装 [多节点方式]
- Android+OTA+升级之一:编译升级包---make+otapackage
- centos7编译安装nginx及无缝升级https
- php编译安装升级
- 在Ubuntu上以tarball方式安装MySQL(mysql-5.5.14-linux2.6-x86_64.tar.gz)
- [Leetcode] Permutations
- Vmware提示:host usb device connections disabled-虚拟机不能连接USB设备(不能连网等等)
- Eclipse 快捷键大全
- VS2008中影响exe大小和速度的编译选项
- [Leetcode] Permutations II
- tarball方式编译安装及升级-make、patch
- 静态函数库与动态函数库区别、应用--ldconfig、ldd
- [Leetcode] Subsets II
- Inside the C++ Object Model 深度探索对象模型 3-DATA 4-Function
- leetcode 105: Longest Consecutive Sequence
- 基于词语共现时间元方法的个性化学术研究时序路径发现及其可视化呈现技术
- 最大连续子序列和
- 汇编跳转比较用的列表
- 关于工资的三个秘密