如何使用 GNU Stow 来管理从源代码安装的程序和点文件 | Linux 中国
2018-03-22 00:00
1271 查看
有时候我们必须从源代码安装程序,因为它们也许不能通过标准渠道获得,或者我们可能需要特定版本的软件。 GNU Stow 是一个非常不错的符号链接工厂(symlinks factory)程序,它可以帮助我们保持文件的整洁,易于维护。-- Egidio Docile
有用的原文链接请访问文末的“原文链接”获得可点击的文内链接、全尺寸原图和相关文章。
致谢编译自 | https://linuxconfig.org/how-to-use-gnu-stow-to-manage-programs-installed-from-source-and-dotfiles
作者 | Egidio Docile
译者 | MjSeven ? ? 共计翻译:12 篇 贡献时间:50 天目的使用 GNU Stow 轻松管理从源代码安装的程序和点文件(LCTT 译注:点文件dotfile,即以
.开头的文件,在 *nix 下默认为隐藏文件,常用于存储程序的配置信息。)要求◈ root 权限难度简单约定◈
#- 给定的命令要求直接以 root 用户身份或使用
sudo命令以 root 权限执行◈
$- 给定的命令将作为普通的非特权用户来执行介绍有时候我们必须从源代码安装程序,因为它们也许不能通过标准渠道获得,或者我们可能需要特定版本的软件。 GNU Stow 是一个非常不错的符号链接工厂symlinks factory程序,它可以帮助我们保持文件的整洁,易于维护。获得 stow你的 Linux 发行版本很可能包含
stow,例如在 Fedora,你安装它只需要:
# dnf install stow
在 Ubuntu/Debian 中,安装
stow需要执行:
# apt install stow
在某些 Linux 发行版中,
stow在标准库中是不可用的,但是可以通过一些额外的软件源(例如 RHEL 和 CentOS7 中的EPEL )轻松获得,或者,作为最后的手段,你可以从源代码编译它。只需要很少的依赖关系。从源代码编译最新的可用 stow 版本是
2.2.2。源码包可以在这里下载:
https://ftp.gnu.org/gnu/stow/。一旦你下载了源码包,你就必须解压它。切换到你下载软件包的目录,然后运行:
$ tar -xvpzf stow-2.2.2.tar.gz
解压源文件后,切换到
stow-2.2.2目录中,然后编译该程序,只需运行:
$ ./configure
$ make
最后,安装软件包:
# make install
默认情况下,软件包将安装在
/usr/local/目录中,但是我们可以改变它,通过配置脚本的
--prefix选项指定目录,或者在运行
make install时添加
prefix="/your/dir"。此时,如果所有工作都按预期工作,我们应该已经在系统上安装了
stow。stow 是如何工作的?
stow背后主要的概念在程序手册中有很好的解释:Stow 使用的方法是将每个软件包安装到自己的目录树中,然后使用符号链接使它看起来像文件一样安装在公共的目录树中为了更好地理解这个软件的运作,我们来分析一下它的关键概念:stow 文件目录stow 目录是包含所有 stow 软件包的根目录,每个包都有自己的子目录。典型的 stow 目录是
/usr/local/stow:在其中,每个子目录代表一个软件包。stow 软件包如上所述,stow 目录包含多个“软件包”,每个软件包都位于自己单独的子目录中,通常以程序本身命名。包就是与特定软件相关的文件和目录列表,作为一个实体进行管理。stow 目标目录stow 目标目录解释起来是一个非常简单的概念。它是包文件应该安装到的目录。默认情况下,stow 目标目录被视作是调用 stow 的目录。这种行为可以通过使用
-t选项(
--target的简写)轻松改变,这使我们可以指定一个替代目录。一个实际的例子我相信一个好的例子胜过 1000 句话,所以让我来展示
stow如何工作。假设我们想编译并安装
libx264,首先我们克隆包含其源代码的仓库:
$ git clone git://git.videolan.org/x264.git
运行该命令几秒钟后,将创建
x264目录,它将包含准备编译的源代码。我们切换到
x264目录中并运行
configure脚本,将
--prefix指定为
/usr/local/stow/libx264目录。
$ cd x264 && ./configure --prefix=/usr/local/stow/libx264
然后我们构建该程序并安装它:
$ make
# make install
x264目录应该创建在
stow目录内:它包含了所有通常直接安装在系统中的东西。 现在,我们所要做的就是调用
stow。 我们必须从
stow目录内运行这个命令,通过使用
-d选项来手动指定
stow目录的路径(默认为当前目录),或者通过如前所述用
-t指定目标。我们还应该提供要作为参数存储的软件包的名称。 在这里,我们从
stow目录运行程序,所以我们需要输入的内容是:
# stow libx264
libx264 软件包中包含的所有文件和目录现在已经在调用 stow 的父目录 (/usr/local) 中进行了符号链接,因此,例如在
/usr/local/ stow/x264/bin中包含的 libx264 二进制文件现在符号链接在
/usr/local/bin之中,
/usr/local/stow/x264/etc中的文件现在符号链接在
/usr/local/etc之中等等。通过这种方式,系统将显示文件已正常安装,并且我们可以容易地跟踪我们编译和安装的每个程序。要反转该操作,我们只需使用
-D选项:
# stow -d libx264
完成了!符号链接不再存在:我们只是“卸载”了一个 stow 包,使我们的系统保持在一个干净且一致的状态。 在这一点上,我们应该清楚为什么 stow 还可以用于管理点文件。 通常的做法是在 git 仓库中包含用户特定的所有配置文件,以便轻松管理它们并使它们在任何地方都可用,然后使用 stow 将它们放在适当位置,如放在用户主目录中。stow 还会阻止你错误地覆盖文件:如果目标文件已经存在,并且没有指向 stow 目录中的包时,它将拒绝创建符号链接。 这种情况在 stow 术语中称为冲突。就是这样!有关选项的完整列表,请参阅 stow 帮助页,并且不要忘记在评论中告诉我们你对此的看法。via: https://linuxconfig.org/how-to-use-gnu-stow-to-manage-programs-installed-from-source-and-dotfiles作者:Egidio Docile[2] 译者:MjSeven 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出
相关文章推荐
- 如何使用 GNU Stow 来管理从源代码安装的程序和点文件
- Linux - Unix环境高级编程(第三版) 源代码编译(即头文件apue.h如何使用问题)【转】
- IBM的LPI复习资料之LPI101-Topic102:Linux安装和包管理(3)管理动态链接库(查找和加载程序需要的动态链接库文件)
- 如何在 Ubuntu 16.04 上安装和使用 Encryptpad | Linux 中国
- 请教大家,如何使用sed命令,替换文件指定行的内容呢?-Linux系统管理-ChinaUnix.net
- How to use logrotate to manage log files in linux(如何在Linux中使用logrotate去管理日志文件)
- Linux操作系统的简单指令及如何使用vim编写一个程序,然后使用gcc查看【预处理】、【编译】、【汇编】、【链接】各阶段文件的内容。
- OpenShift Redhat免费空间SSH登录管理和使用:下载文件安装程序和应用
- 如何在 Ubuntu 上使用 ZFS 文件系统 | Linux 中国
- 如何安装 Microsoft Office 兼容包,以便能够使用早期版本的 Excel、PowerPoint 和 Word 来打开和保存来自 2007 Office 程序的文件
- Linux如何使用GPG(GNU Privacy Guard)对信息/文件进行加密和解密
- 如何使用 Seahorse 管理 PGP 和 SSH 密钥 | Linux 中国
- 详解如何用源代码安装软件,以及如何卸载它 | Linux 中国
- 如何在 Linux 上使用 snap 安装 Spotify(声破天) | Linux 中国
- Linux下如何自己编译源代码(制作成可以安装的.deb文件)
- 如何在linux下安装和使用phonon的必须的文件
- 如何在使用 scp 命令时递归地排除文件 | Linux 中国
- 如何使用RHEL/CentOS 7安装创建和管理LXC (Linux Containers)
- Linux下如何解压rar、zip格式文件?Linux VPS安装7zip/使用方法/压缩解压中文文件名乱码解决方案
- 如何使用 pdfgrep 从终端搜索 PDF 文件 | Linux 中国