一、程序的组成部分
Linux下程序大都是由以下几部分组成:
二进制文件:也就是可以运行的程序文件
库文件:就是通常我们见到的lib目录下的文件
配置文件:这个不必多说,都知道
帮助文档:通常是我们在linux下用man命令查看的命令的文档
二、linux下程序的存放目录
linux程序的存放目录大致有三个地方:
/etc, /bin, /sbin, /lib :系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上
/usr/bin,/usr/sbin,/usr/lib:操作系统核心功能,可以单独分区
/usr/local/bin,/usr/local/sbin,/usr/local/lib,/usr/local/etc,/usr/local/man:这个用于安装第三方程序,分别对应了二进制文件、库文件、配置文件、帮助文档的目录
通常来说我们安装程序就安装在 /usr/local目录下
三、编译安装源程序
1、使用如下命令查看当前是否安装了gcc编译器,没有可以先用yum安装gcc
gcc --version #查看是否安装gcc
2、解压源码包,例如:
tar -xvf nginx-1.7.7.tar.gz #解压源码包
3、进入解压好的源码包:
cd nginx-1.7.7 #进入源码包
4、执行configure文件,此文件有两个功能:1、让用户选定编译特性;2、检查编译环境。configure执行后将生成MakeFile文件。例如:
./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf
其中我们通过--prefix制定了安装路径,通过--conf-path制定了配置文件的具体位置。注意:不是所有的程序的configure参数都是一样的 可以使用 ./configure --help查看详细参数说明。如果该程序所依赖的库在当前系统中没有安装,则会导致configure最后报错,遇到这种情况就需要你先安装依赖库。
5、执行make命令,编译程序
make
6、编译成功后就可以安装了,执行如下命令
make install
到此程序就算安装完成了,但是不要忘了还有后续的配置哦
四、配置程序
1、修改PATH环境变量,以能够识别此程序的二进制文件路径;
修改/etc/profile文件,在文件中 添加
export PATH=$PATH:/path/to/somewhere #记得是可执行文件所在的目录,路径中不要包含可执行文件。
然后执行 :
source /etc/profile #是我们的修改生效
2、默认情况下,系统搜索库文件的路径/lib, /usr/lib; 要增添额外搜寻路径(注意:有的程序不提供库文件,那就不需要此设置了)
在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中;然后执行如下命令使其生效
ldconfig
3、如果程序提供了库文件,也会相应的提供头文件,一般在安装目录的include目录下,系统默认扫描头文件的路径是:/usr/include。我们可以在/usr/include下用链接连接到我们安装程序的头文件。
ln -s /usr/local/nginx/include /usr/include/yourname
4、可能程序还提供了帮助文档,一般是安装目录下的man目录,为了我们可以使用man命令查看我们程序的帮助文档,我们需要:在/etc/man.config中添加一条MANPATH,指向我们的文档目录
相关推荐
**MySQL 5.7.18源码编译安装** 1. **环境准备**:确保你是在Ubuntu 16.04环境下,该系统基于Debian,支持大多数开源软件的安装。你需要安装一些基本的开发工具,如`build-essential`,`cmake`,`libssl-dev`,`zlib...
对于初学者而言,在Linux环境下安装和配置Qt可能会遇到不少挑战。相比于Windows环境,Linux下的安装配置过程更为复杂,涉及到更多的命令行操作及环境变量设置。本文将详细介绍在Linux系统下编译、安装并配置Qt的完整...
Mediainfo 源码编译后生成的可执行程序可以在各种Linux发行版中运行,这得益于其跨平台的设计和对Linux系统的广泛兼容性。以下是关于 Mediainfo 及其在Linux中编译过程的相关知识点: 1. **Mediainfo 工具**:...
在Linux环境下进行源码编译是一项技术性强且需要细致操作的工作,尤其对于Hadoop这样的分布式计算框架来说,正确编译源码是确保其在系统中正常运行的关键步骤。本资源包"Linux环境下源码编译软件合集.rar"提供了一...
至此,你已成功完成了QtCharts 5.7.0的源码编译与安装过程。现在可以利用这个强大的图表库来开发具有专业图表功能的应用程序了。记住,实践是检验真理的唯一标准,多尝试,多探索,你会发现QtCharts能为你的数据可视...
**标题与描述解析** 标题"librtmp库实测可在Linux下进行交叉编译"指出,librtmp库,一个...通过理解librtmp库的工作原理和Linux下的交叉编译技术,开发者可以更有效地利用这些工具来构建高效、可靠的实时通信系统。
在Linux环境下,Qt5.13.2是一个广泛使用的跨平台应用程序开发框架,它提供了丰富的图形用户界面(GUI)工具包。QWebEngine是Qt5中的一个模块,用于实现一个功能强大的基于Chromium的Web浏览器引擎,使得开发者能够在...
这里我们关注的是《Linux程序设计》一书的源码,这是一本经典的教材,适合初学者和有经验的开发者用来深入理解Linux下的编程实践。该书的第二版源码提供了一个宝贵的资源,允许读者通过实际操作来加深对书中的概念和...
这个是linux下面一个完整的ping程序源码,适合初步的网络编程学习。程序代码结构清晰,有必要的注释。里面包含七个文件,其中一个Makefile文件,注意:这个是在linux环境下的程序。 编译和运行: 进入目录执行:make...
在本教程中,我们将深入探讨如何在基于ARM架构的鲁班猫LubanCat设备上,搭载Rockchip RK3588芯片的Ubuntu 20.04操作系统中,源码编译并安装Qt 5.12.5。这个过程涉及到Linux环境的配置、Qt的源码获取、编译过程以及...
本文主要针对OpenMC程序(0.10.0版本)在Ubuntu 18.04操作系统上的编译与安装进行详述,涵盖两种方法:conda-forge安装法和源码编译安装法。 **3.1 编译方法介绍** ### 3.1.1 Conda-forge安装方法 1. **下载与...
在Linux环境下进行程序设计,尤其是使用C语言时,掌握一些核心概念和技术至关重要。"Linux程序设计源码"可能包含了用于教学或实践的示例代码,这些代码可以帮助你深入理解Linux系统编程的各个方面。《Beginning ...
通过以上步骤,我们可以成功地安装并编译Linux内核源码包。需要注意的是,在整个过程中,确保版本的一致性和配置的准确性至关重要。此外,对于特定硬件的支持(如NVIDIA显卡驱动),也需要特别关注相应的内核版本和...
对于Linux源码包,`iperf-2.0.5.tar.gz`通常表示这是一个用tar打包,并通过gzip进行压缩的文件。在Linux系统中,你可以使用`tar -zxvf iperf-2.0.5.tar.gz`命令来解压。解压后,你会得到一个包含源代码的目录,其中...
在Linux环境下,通过源码编译安装ngspice可以实现定制化的需求并获得最新的特性和修复。 首先,让我们深入了解一下**Linux运维**。在Linux系统中,运维工作包括系统的安装、配置、维护和故障排除。对于ngspice这样...
在Linux环境下,如RHEL6中通过源码编译的方式安装Subversion,可以更好地控制安装配置细节,满足特定的需求。 **步骤详解:** 1. **下载 Subversion 源码包:** - 使用`wget`命令下载Subversion主程序和依赖包。 ...
而FlameGraph是一种可视化工具,用于创建CPU或内存剖析的火焰图,通过这种图形化方式可以清晰地看到程序中各个函数调用的热点,帮助优化性能。 首先,要编译和安装cppcheck,你需要遵循以下步骤: 1. **获取源码**...
通过查看这些调试过的源码,可以学习到如何在Linux环境下组织程序结构,理解函数调用、系统调用、进程间通信(IPC)以及错误处理等技术。例如,文件I/O操作、网络编程、信号处理等常见场景的实现。 四、程序设计与...