一、文件系统层次结构标准

FHS_3.0 标准文档

/bin 存储一些二进制可执行命令文件, /usr/bin 也存放了一些基于用户的命令文件。
/sbin 存储了很多系统命令, /usr/sbin 也存储了许多系统命令。
/root 超级用户 root 的根目录文件。
/home 普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。
/boot 存放 Ubuntu 系统内核和系统启动文件。
/mnt 通常包括系统引导后被挂载的文件系统的挂载点。
/dev 存放设备文件,我们后面学习 Linux 驱动主要是跟这个文件夹打交道的。
/etc 保存系统管理所需的配置文件和目录。
/lib 保存系统程序运行所需的库文件, /usr/lib 下存放了一些用于普通用户的库文件。
/lost+found 一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。
/var 存储一些不断变化的文件,比如日志文件
/usr 包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。
/media 存放 Ubuntu 系统自动挂载的设备文件。
/proc 虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息。
/tmp 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限。
/opt 可选文件和程序的存放目录。
/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。

二、Linux上下载源代码配置编译安装

源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。

1)./configure

一个有用的链接https://www.pianshen.com/article/35152019962/

1、configure简介

./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,但并不是所有的tar包都是源代码的包,楼主可以ls看看有没有configure这个文件,也许你下的是二进制的包,如果是二进制的包,解压后直接就能使用。

脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只是在被调用时进行解释或者编译。如GUI脚本、Shell脚本、web编程脚本

configure文件是一个可执行的脚本文件
它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。

其中–prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

如果配置了–prefix,如:
$ ./configure --prefix=/usr/local/test

安装后的所有资源文件都会被放在/usr/local/test目录中,不会分散到其他目录

使用–prefix选项的另一个好处是方便卸载软件或移植软件;当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;而移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)

2、configure参数

你可以通过给出下面configure命令行选项中的一个或更多的选项来客户化制作和安装过程:
--prefix=PREFIX  把所有文件装在目录PREFIX下面,而不是/usr/local/pgsql里.实际的文件会安装到PREFIX的若干'子目录'里;甚至可能没有一个文件会直接安装到PREFIX目录里.    如果你有特殊需要,你还可以用下面的选项客户化不同的子目录的位置.
--exec-prefix=EXEC-PREFIX  你可以把体系相关的文件安装到一个不同的位置,EXEC-PREFIX,而不是PREFIX设置的地方.这样做可以比较方便地在不同主机之间共享体系相关的文件.如果你省略这些,那么EXEC-PREFIX就会被设置为等于   PREFIX,并且与体系相关以及与体系无关的文件都会安装到同一棵目录树下,这也可能是你想要的结果.    --bindir=DIRECTORY  为可执行程序声明目录,缺省就默认是EXEC-PREFIX/bin,通常也就是/usr/local/pgsql/bin.    --datadir=DIRECTORY  设置所安装的程序需要的只读文件的目录.缺省就默认是PREFIX/share.请注意这个目录和你放数据库文件的地方没有任何关系.    --sysconfdir=DIRECTORY  用于各种各样配置文件的目录,缺省就默认为PREFIX/etc.    --libdir=DIRECTORY  库文件和动态装载模块的目录.缺省就默认是EXEC-PREFIX/lib.    --includedir=DIRECTORY  C和C++头文件的目录.缺省就默认是PREFIX/include.    --docdir=DIRECTORY  文档文件,(除“man(手册页)”以外,将被安装到这个目录.缺省就默认是PREFIX/doc.    --mandir=DIRECTORY  随着PostgreSQL一起带的手册页将安装到这个目录.在它们相应的manx子目录里.缺省就默认是   PREFIX/man.    '注意: 为了减少对共享安装位置(比如/usr/local/include)的污染,configure自动在datadir,sysconfdir,includedir,和docdir上附加一个“/postgresql” 字串,除非完全展开以后的目录名字已经包含字串 “postgres” 或者   “pgsql”.比如,如果你选择/usr/local做前缀,那么C的头文件将安装到/usr/local/include/postgresql,但是如果前缀是/opt/postgres,那么它们将被放进/opt/postgres/include.'    --with-includes=DIRECTORIES  DIRECTORIES   是一系列冒号分隔的目录,这些目录将被加入编译器的头文件搜索列表中.如果你有一些可选的包(比如GNU   Readline)安装在非标准位置,你就必须使用这个选项,以及可能还有相应的   --with-libraries选项.
例子:--with-includes=/opt/gnu/include:/usr/sup/include.    --with-libraries=DIRECTORIES  DIRECTORIES   是一系列冒号分隔的目录,这些目录是用于查找库文件的.如果你有一些包安装在非标准位置,你可能就需要使用这个选项(以及对应的--with-includes选项).
例子:--with-libraries=/opt/gnu/lib:/usr/sup/lib.    --enable-locale  打开区域支持.区域支持会带来性能损失,但是如果你不是在说英语的环境使用数据库,那么你很可能需要这个选项.    --enable-recode  打开单字节字符集记录的支持.参阅Section  5.3获取关于这个特性的详细信息.    --enable-multibyte  允许使用多字节编码.这个选项主要是用于像日语,韩语和中文这样的语言.阅读Section   5.2   获取详细信息.    --with-pgport=NUMBER  把NUMBER设置为服务器和客户端的默认端口.缺省默认是5432.这个端口可以在以后设置,不过如果你在这里声明,那么服务器和客户端将有相同的编译好了的默认值.这样会方便些.    --with-CXX  制作C++支持库.    --with-perl  制作Perl接口模块.Perl接口将被安装到Perl模块通常的安装位置(典型的位置是/usr/lib/perl),   所以你必须要有root权限来执行安装步骤(参阅step4).使用这个选项你需要安装Perl 5.    --with-python  制作Python接口模块.你需要root权限将Python模块安装到它的缺省位置(/usr/lib/pythonx.y).   要使用这个选项,你必须已经安装了Python并且你的系统必须支持共享库.如果你想制作一个新的完整的二进制解释器,你只能自己手工制作.    --with-tcl  制作那些需要Tcl/Tk的部件,就是libpgtcl,pgtclsh,pgtksh,pgaccess和PL/Tcl.你也可以看看下面的   --without-tk.    --without-tk  如果你同时声明了--with-tcl 和这个选项,那么那些需要Tk(也就是pgtksh和pgaccess)的程序将被排除在外.    --with-tclconfig=DIRECTORY,   --with-tkconfig=DIRECTORY  Tcl/Tk的安装文件tclConfig.sh和tkConfig.sh,她们里面包含制作Tcl或Tk模块接口的配置信息.Configure通常会自动在她们的众所周知的位置找到这些文件,但是如果你需要一个不同版本的Tcl或Tk,你也可以声明可以找到她们的目录.    --enable-odbc  制作ODBC驱动包.    --with-odbcinst=DIRECTORY  声明ODBC期望的odbcinst.ini配置文件的路径.缺省是/usr/local/pgsql/etc或者你声明的   --sysconfdir   选项的内容.安装程序将会把一个缺省的文件安装到那里.    --with-krb4=DIRECTORY,   --with-krb5=DIRECTORY  制作支持Kerberos认证的东西.你可以选择Kerberos版本4或5,但不能同时选两个.DIRECTORY参数声明Kerberos安装的根目录;缺省假设是/usr/athena如果相关的头文件和库文件不在常用的父目录,那么你必须使用附加的   --with-includes   和   --with-libraries   选项.另一方面,如果所需要的文件位于一个缺省的搜索目录,(比如说,/usr/lib),那你就不用输入这些参数了.    configure   将在安装之前检查所需要的头文件和库文件以确信你的   Kerberos安装是完整的.    --with-krb-srvnam=NAME  Kerberos服务主的名称.缺省是“postgres”.通常没有理由改变这个值.    --with-openssl=DIRECTORY  制作支持SSL(加密的)联接的postgres.这个选项需要安装OpenSSL包.DIRECTORY参数声明   OpenSSL安装的根目录;缺省时/usr/local/ssl.    configure   将在安装之前检查所需要的头文件和库文件以确信你的OpenSSL安装是充分的.    --with-java  制作JDBC驱动以及相关的Java包.这个选项要求你先安装Ant(当然还要有   JDK).请参考程序员手册   里面JDBC驱动的文档获取更多信息.    --enable-syslog  打开PostgreSQL服务器使用syslog日志系统的功能.(使用这个功能并不意味着你必须用   syslog   做日志,也不是说服务器缺省会做这些,而是给你一个在运行时使用这个选项目的可能.)    --enable-debug  把所有程序和库以带有调试符号的方式编译.这意味着你可以通过一个调试器运行程序来分析问题.   这样做显著增大了最后安装的可执行文件的大小,并且在非gcc的编译器上,这么做通常还要关闭编译器优化,导致速度的下降.但是,如果有这些符号表的话,就可以极大帮助定位可能发生问题的位置.目前,我们认为这个选项对于生产用途而言是边际变量,但是如果你正在进行开发工作,或者正在使用beta版本,那么你就应该打开它.    --enable-cassert  打开在服务器中的assertion检查,它会检查许多“不可能发生”的条件.它对于代码开发的用途而言是无价之宝,不过这些测试稍微地减慢了一些速度.这些断言检查并不一定都是针对严重错误的,因此一些相对无害的   小虫子也可能导致postmaster重启--只要它触发了一次断言失败.目前,我们不推荐在生产环境中使用这个选项,但是如果你在做开发或者在使用beta版本的时候应该打开它.    如果你喜欢用那些和configure找出来的不同的编译器,那么你可以分别设置你的环境变量CC和CXX,把它们设置为你选择的程序.类似地,你可以用CFLAGS和CXXFLAGS变量覆盖缺省编译器标志.比如:    env   CC=/opt/bin/gcc   CFLAGS='-02   -pipe'   ./configure ===========================================================================================Linux┊Configure 参数选项详解作者: easylife 日期: 2006-10-24 02:42Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。
与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能略高哦。为此我转载了一篇关于Configure选项配置的详细介绍。供大家参考configure脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上-- help选项执行configure脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包 时,知道他们的存在是很有益处的.下面对每一个选项进行简略的介绍:--cache-file=FILEconfigure会在你的系统上测试存在的特性(或者bug!).为了加速随后进行的配置,测试的结果会存储在一个cache file里.当configure一个每个子树里都有configure脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助.--help输出帮助信息.即使是有经验的用户也偶尔需要使用使用--help选项,因为一个复杂的项目会包含附加的选项.例如,GCC包里的configure脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项.--no-createconfigure中的一个主要函数会制作输出文件.此选项阻止configure生成这个文件.你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了.--quiet
--silent
当configure进行他的测试时,会输出简要的信息来告诉用户正在作什么.这样作是因为configure可能会比较慢,没有这种输出的 话用户将会被扔在一旁疑惑正在发生什么.使用这两个选项中的任何一个都会把你扔到一旁.(译注:这两句话比较有意思,原文是这样的:If there was no such output, the user would be left wondering what is happening. By using this option, you too can be left wondering!)--version打印用来产生configure脚本的Autoconf的版本号.--prefix=PEWFIX--prefix是最常用的选项.制作出的Makefile会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部 分.举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到/opt/gnu/share:
$ ./configure --prefix=/opt/gnu--exec-prefix=EPREFIX与--prefix选项类似,但是他是用来设置结构倚赖的文件的安装位置.编译好的emacs二进制文件就是这样一个问件.如果没有设置这个选项的话,默认使用的选项值将被设为和--prefix选项值一样.--bindir=DIR指定二进制文件的安装位置.这里的二进制文件定义为可以被用户直接执行的程序.--sbindir=DIR指定超级二进制文件的安装位置.这是一些通常只能由超级用户执行的程序.--libexecdir=DIR指定可执行支持文件的安装位置.与二进制文件相反,这些文件从来不直接由用户执行,但是可以被上面提到的二进制文件所执行.--datadir=DIR指定通用数据文件的安装位置.--sysconfdir=DIR指定在单个机器上使用的只读数据的安装位置.--sharedstatedir=DIR指定可以在多个机器上共享的可写数据的安装位置.--localstatedir=DIR指定只能单机使用的可写数据的安装位置.--libdir=DIR指定库文件的安装位置.--includedir=DIR指定C头文件的安装位置.其他语言如C++的头文件也可以使用此选项.--oldincludedir=DIR指定为除GCC外编译器安装的C头文件的安装位置.--infodir=DIR指定Info格式文档的安装位置.Info是被GNU工程所使用的文档格式.--mandir=DIR指定手册页的安装位置.--srcdir=DIR这个选项对安装没有作用.他会告诉configure源码的位置.一般来说不用指定此选项,因为configure脚本一般和源码文件在同一个目录下.--program-prefix=PREFIX指定将被加到所安装程序的名字上的前缀.例如,使用--program-prefix=g来configure一个名为tar的程序将会使安 装的程序被命名为gtar.当和其他的安装选项一起使用时,这个选项只有当他被Makefile.in文件使用时才会工作.--program-suffix=SUFFIX指定将被加到所安装程序的名字上的后缀.--program-transform-name=PROGRAM这里的PROGRAM是一个sed脚本.当一个程序被安装时,他的名字将经过sed -e PROGRAM来产生安装的名字.--build=BUILD指定软件包安装的系统平台.如果没有指定,默认值将是--host选项的值.--host=HOST指定软件运行的系统平台.如果没有指定,将会运行config.guess来检测.系统平台(英语:computing platform)是指在电脑里让软件运行的系统环境,包括硬件环境和软件环境。典型的系统平台包括一台电脑的硬件体系结构(computer architecture)、操作系统、运行时库等。--target=GARGET指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用--host选项的值.--disable-FEATURE一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置.如果默认是提供这些特性,可以使用--disable-FEATURE来禁用它,这里FEATURE是特性的名字.例如:$ ./configure --disable-gui-enable-FEATURE[=ARG]相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用--enable-FEATURE来起用它.这里FEATURE是特性的名字.一个特性可能会接受一个可选的参数.例如:
$ ./configure --enable-buffers=128
--enable-FEATURE=no与上面提到的--disable-FEATURE是同义的.--with-PACKAGE[=ARG]在自由软件社区里,有使用已有软件包和库的优秀传统.当用configure来配置一个源码树时,可以提供其他已经安装的软件包的信息.例如,倚 赖于Tcl和Tk的BLT器件工具包.要配置BLT,可能需要给configure提供一些关于我们把Tcl和Tk装的何处的信息:
$ ./configure --with-tcl=/usr/local --with-tk=/usr/local
--with-PACKAGE=no与下面将提到的--without-PACKAGE是同义的.--without-PACKAGE有时候你可能不想让你的软件包与系统已有的软件包交互.例如,你可能不想让你的新编译器使用GNU ld.通过使用这个选项可以做到这一点:
$ ./configure --without-gnu-ld--x-includes=DIR这个选项是--with-PACKAGE选项的一个特例.在Autoconf最初被开发出来时,流行使用configure来作为Imake 的一个变通方法来制作运行于X的软件.--x-includes选项提供了向configure脚本指明包含X11头文件的目录的方法.--x-libraries=DIR类似的,--x-libraries选项提供了向configure脚本指明包含X11库的目录的方法.

3、执行./configure后怎么才算成功

不报error,就是成功。但是成功出来的结果得看你用的参数的实际作用与你想的是否一样

4、configure的参数一般可以取的值

交叉编译之./configure --build,–host,–target设置

2)make

3)make install

4)make uninstall

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令(nodejs的源码包里有uninstall命令,测试版本v0.10.35)

文件系统层次结构标准和Linux上下载源代码配置编译安装相关推荐

  1. (转)linux上nginx源码编译安装

    亲测有效: 转:  https://segmentfault.com/a/1190000007116797https://segmentfault.com/a/1190000007116797 ngi ...

  2. FHS—文件系统层次结构标准

    文件系统层次结构标准(Filesystem Hierarchy Standard,FHS)定义了类UNIX操作系统下文件和目录放置的要求和准则,由 Linux 基金会维护. 大多数类 Unix 操作系 ...

  3. 在 Ubuntu Linux 上从源代码构建 Qt 6.2.2的简短教程

    Qt 6.2.0 是 Qt 6 系列的第3个版本,功能与 Qt 5 相当,因此有望成为第一个被新 Qt 项目或从 Qt 5 移植的项目广泛采用的版本.在这篇文章中我提供有关在 Ubuntu Linux ...

  4. linux开发板ftp,用ftp从linux上下载文件到开发板的方法

    用ftp从linux上下载文件到开发板的方法 1.       首先将我们的虚拟机(操作系统以fedora为例)与开发板的用网线连接. 2.       虚拟机的网卡设置为bridged (这个在vm ...

  5. 怎么在Linux上下载并安装ESET NOD32 Antivirus 4桌面版

    转自:怎么在Linux上下载并安装ESET NOD32 Antivirus 4桌面版 下载并安装ESET NOD32 Antivirus 4的Linux桌面版,根据下面的步骤一步一步的来: I.  下 ...

  6. Docker在Linux上下载与安装配置

    Docker在Linux上下载与安装配置 官方文档: Redirecting- 1.删除旧版本的docker,防止有残留 sudo yum remove docker \docker-client \ ...

  7. Linux上百度客户端bcloud的安装和设置

    2019独角兽企业重金招聘Python工程师标准>>> 在linux上使用百度云网盘,有一个民间的客户端--bcloud,最近一段时间以来直接使用会有问题,作者呢也没有修复这个问题, ...

  8. linux下的线程编译,Linux下的多线程下载工具Axel编译安装

    Linux系统下,下载文件一般使用wget直接下载,但是wget是不支持多线程,导致下载速度提不上来,尤其是下载大文件的时候特别明显 axel不仅支持多线程下载,并且还支持断点续传.记录一下CentO ...

  9. 在linux上MySQL的三种安装方式

    安装MySQL的方式常见的有三种: 方式一:rpm安装 (1) 操作系统发行商提供的 (2) MySQL官方提供的(版本更新,修复了更多常见BUG)www.mysql.com/downloads 关于 ...

最新文章

  1. Activex、OLE、COM、OCX、DLL之间区别、联系
  2. 语音识别技术迎风发展,未来五年规模将近300亿
  3. 默纳克电梯系统服务器怎么操作,默纳克系统常见问题之六——电梯不运行
  4. 创建线程方式2-runnable接口的实现类
  5. Landsat8的不同波段组合说明
  6. 92 Three.js 使用设置bumpMap凹凸贴图创建褶皱
  7. 【JY】从一根悬臂梁说起
  8. RK100键盘说明书
  9. XSS之xss-labs-level17
  10. 一篇总览前端和后端工具对应关系
  11. 基于802.1q技术实现单线复用的一种思路
  12. 第五季完美童模 公益大使朱春宇现场走秀回顾
  13. 电子废弃物逆向物流模式研究
  14. win10修改默认文件管理器
  15. 明川和治功现在正说牛家沟那个“母老虎”的事
  16. 绘制地铁线路html,HTML5绘制上海地铁线路图(2)
  17. 511遇见易语言API模块视频教程取所有子窗口句柄
  18. linux pycharm无法输入中文,linux下idea、pycharm等输入中文拼音时满3个字母后无法继续拼音输入的问题...
  19. java开发框架emp流程图,附相关架构及资料
  20. android studio for mac无法真机调试,Android studio for mac真机测试

热门文章

  1. 2017亿欧创新者年会暨第三届创新奖颁奖盛典 | 互联网行业公会
  2. java获取三个月之前时间与当前时间
  3. 从非洲血库到热带雨林:为什么普惠联接是社会的数字化支点?
  4. 【路径规划】样条曲线
  5. [leetcode]Unique Paths II
  6. 嵌入式开发中遇见的问题1-printf函数
  7. 学习笔记:【案例】中医证型关联规则挖掘
  8. IMX6ULL-UBoot 20.04移植记录
  9. Python — 词汇表(一)
  10. vue播放视频使用原生video标签基本功能(不含样式)