软件在Linux下的安装
Linux发行版本有Redhat系列以及debian系列,对于redhat系列,linux私房菜中对CentOS操作系统中有过学习和使用。所以本文主要是学习debian系列中的Ubuntu操作系统。
安装方式
源码安装、DPKG安装、apt安装,
安装方法是<1>源码进行编译来进行安装和升级,<2>使用编译好的二进制文件进行安装,而在使用编译好的二进制文件进行安装又可以分为dpkg 安装和apt在线安装,。
源码安装
安装基本概念
对于源码安装,基本概念在鸟哥的私房菜中有介绍。具体的解释就不做详细的解释了,把有关的基本概念梳理出来就好。
源码,是我们编写的程序代码,在经过编译程序和链接程序的处理后,生成可执行文件。而在链接程序中则需要一些外部已经编写好的函数库。
静态链接库与动态链接库都是共享代码的方式,在这里函数库按照链接方式可以分为静态链接库和动态链接库。<1>函数库放在/lib /usr/lib 下,其中动态链接库采用.so,静态链接库采用.a来命名。 静态链接库占用内存多,但速度快。冬天链接库占用内存少,升级容易,灵活。判断一个二进制文件是否包含动态函数库,采用的命令是 **ldd **
类比于windows操作系统中,区别<1>如果采用静态链接库,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的区别<2>在在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。动态库就是在需要调用其中的函数时,根据函数映射表找到该函数然后调入堆栈执行。如果在当前工程中有多处对dll文件中同一个函数的调用,那么执行时,这个函数只会留下一份拷贝。但是如果有多处对lib文件中同一个函数的调用,那么执行时,该函数将在当前程序的执行空间里留下多份拷贝,而且是一处调用就产生一份拷贝。
源码安装过程
(./configure)–> 编译(sudo make) –> 安装(sudo make install)
配置:这是编译源代码的第一步,通过 ./configure 命令完成。执行此步以便为编译源代码作准备。配置会检测环境,主要是检测操作系统平台,内核,内核的文件件,驱动,编译器,函数库以及其他相关的软件。荣国configure会创建一个MakeFile的文件,通常软件包会提供的。
编译:一旦配置通过,可即刻使用 make 指令来执行源代码的编译过程。make是一个程序,会搜索MakeFile文件进行编译。MakeFile文件中记录了源码如何编译的信息。make程序包含了以gcc进行源码编译生成目标文件,目标文件通过gcc进行函数库,主程序和子程序的链接,最后生成二进制文件。
安装:如果编译没有问题,那么执行 sudo make install 就可以将程序安装到系统中了。
注意:make和gcc 不一定会m默认安装,所以如果没有的话,请自行谷歌查看怎么安装这些,通常在联网的情况下,apt-get install gcc make 即可。
安装后的配置
安装好程序后,我们调用程序的时候,需要到安装的程序的目录下运行程序,为了bash中可以调用程序,我们需要添加到环境变量中的路径中去
安装后的文件放置位置
配置/etc/man/config 才可以使用man来查询该软件的在线文件。更新源码diff patch。使用MD5的编码判断下载的文件是否是原厂商所发布的文件。
命令总结
**./configure 、make 、make install、ldd、diff、patch、ldconfig**