![在Linux中安装新插件时如何配置路径?](https://linux22.com/image/1278218/%E5%9C%A8Linux%E4%B8%AD%E5%AE%89%E8%A3%85%E6%96%B0%E6%8F%92%E4%BB%B6%E6%97%B6%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E8%B7%AF%E5%BE%84%EF%BC%9F.png)
每当我需要在 Xentos 上安装某些东西时,我都会找到 rpm 或 tar ball。
我想知道两者之间有什么区别。
另外,如果我需要为 php 安装一些东西,但是我已经安装在不同的文件夹中,那么在新下载的 tar.gz 包中使用 configure 命令时,我该如何提供该 php 路径?
答案1
RPM 是一个包含许多特殊内容的存档。它用于安装已构建的软件,有时也用于安装源代码(通常标记为 SRPM,即源 RPM)。除了文件本身之外,它还可能包含预安装脚本、安装后脚本,以及删除前和删除后脚本(如果您想要删除软件)。它通过在 RPM 数据库中保存一些安装信息来保持整洁。您需要以 root 身份进行安装,这不仅是因为文件(几乎总是)安装在通常只有 root 才能访问的位置,而且您需要以 root 身份更改 RPM 数据库。
tarball
一般来说,A只是一个档案。文件和目录的集合。您拥有的是一个源 tarball,您需要为特定安装配置并运行它。一旦您提取了 tarball(tar -xzvf /path/to/something.tar.gz
将提取它)。大多数软件使用名为 的东西autoconf
,它会生成一个名为 的脚本configure
,该脚本可以配置您的源以进行构建。它会进行一些检查(您有编译器吗?您的库是否足够新?)并可以使用一些命令行标志。使用configure --help
来查看这些标志是什么。通常,您唯一需要的标志是--prefix=/path/to/somewhere
说明您想要安装的位置。一旦您运行 configure,您就可以运行make && make install
来安装它。或者,sudo make install
如果您使用的是仅限 root 的位置。
标志之后的任何内容prefix=...
都高度依赖于您的源以及计算机上预先存在的内容。我不知道您的软件包,也不知道 php 如何连接到它。是否configure --help
列出了 php 路径的任何标志?有时您只需将解释器放入您的 PATH,例如 PATH=/path/to/php/bin:$PATH。configure
然后脚本(可能)找到 php 并对其进行查询(使用 perl 的东西以这种方式工作)。之后您可能需要一些后期构建配置。准备好进行实验。
由于您说您的内容位于非标准位置,因此您的选择可能只是源 tarball。RPM 是预构建的,并且通常只有很少的配置选项。
答案2
RPM 是一个预制包 - 您可以使用图形工具或rpm
(CLI)来安装它。
Tarball 是源代码。通常只需运行
./configure && make && make install
如果需要更改包的安装路径,请执行以下操作:
./configure --prefix=/this/is/where/everything/goes && make && sudo make install
(或使用su -c
:我是 Zenwalker,无法真正说出在基于 RH 的发行版上哪个更受欢迎)
最终会得到如下目录树:
/this/is/.../goes/bin
/this/is/.../goes/doc
/this/is/.../goes/share
如果这不是您想要更改的安装路径,请随意指定得更具体,例如./configure
以下路径选项:
安装目录的微调:
--bindir=DIR 用户可执行文件 [EPREFIX/bin]
--sbindir=DIR 系统管理可执行文件 [EPREFIX/sbin]
--libexecdir=DIR 程序可执行文件 [EPREFIX/libexec]
--sysconfdir=DIR 只读单机数据 [PREFIX/etc]
--sharedstatedir=DIR 可修改的与架构无关的数据 [PREFIX/com]
--localstatedir=DIR 可修改单机数据 [PREFIX/var]
--libdir=DIR 目标代码库 [EPREFIX/lib]
--includedir=DIR C 头文件 [PREFIX/include]
--oldincludedir=非 gccv 的 DIR C 头文件[/usr/include]
--datarootdir=DIR 只读架构独立数据根目录 [PREFIX/share]
--datadir=DIR 只读架构独立数据 [DATAROOTDIR]
--infodir=DIR 信息文档 [DATAROOTDIR/info]
--localedir=DIR 区域相关数据 [DATAROOTDIR/locale]
--mandir=DIR man 文档 [DATAROOTDIR/man]
--docdir=DIR 文档根目录 [DATAROOTDIR/doc/bullet]
--htmldir=DIR html 文档 [DOCDIR]
--dvidir=DIR dvi 文档 [DOCDIR]
--pdfdir=DIR pdf 文档 [DOCDIR]
--psdir=DIR ps 文档 [DOCDIR]