红联Linux论坛
Linux帮助

北京pk10技巧6码稳赚:如何使用GNU Stow来管理从源代码安装的程序和点文件

发布时间:2018-03-22 15:44:05来源:linux.cn作者:MjSeven
目的
使用 GNU Stow 轻松管理从源代码安装的程序和点文件(注:点文件,即以 . 开头的文件,在 *nix 下默认为隐藏文件,常用于存储程序的配置信息。)
 
要求
root 权限
 
难度
简单
 
约定
# - 给定的命令要求直接以 root 用户身份或使用 sudo 命令以 root 权限执行
$ - 给定的命令将作为普通的非特权用户来执行
 
介绍
有时候我们必须从源代码安装程序,因为它们也许不能通过标准渠道获得,或者我们可能需要特定版本的软件。 GNU Stow 是一个非常不错的符号链接工厂程序,它可以帮助我们保持文件的整洁,易于维护。
 
获得 stow
你的 Linux 发行版本很可能包含 stow,例如在 Fedora,你安装它只需要:
# dnf install stow
在 Ubuntu/Debian 中,安装 stow 需要执行:
# apt install stow
在某些 Linux 发行版中,stow 在标准库中是不可用的,但是可以通过一些额外的软件源(例如 RHEL 和 CentOS7 中的EPEL )轻松获得,或者,作为最后的手段,你可以从源代码编译它。只需要很少的依赖关系。
 
从源代码编译
最新的可用 stow 版本是 2.2.2。源码包可以在这里下载:http://cdhxdzs.com.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 帮助页。
 
详解如何用源代码安装软件,以及如何卸载它:http://www.fanyiwo.com/linux/33039.html
ubuntu16.04上用源代码安装ICE:http://www.fanyiwo.com/linux/30098.html
手动编译源代码安装GR GSM:http://www.fanyiwo.com/linux/22728.html
CentOS 6.4用源代码安装LAMP环境:http://www.fanyiwo.com/linux/11472.html
CentOS 6.4用源代码安装LNMP环境:http://www.fanyiwo.com/linux/11471.html
推荐教程
热点推荐
上海时时乐开奖結果 上海时时乐赢遍天下 北京pk10冠军 北京快乐8预测推荐号码 北京pk10个人经验和技巧 北京快乐8现场直播图
北京pk10技巧规律2码 北京pk10四码定位技巧 北京pk10技巧6码稳赚 北京初见科技坑死了 北京pk10杀号技巧大全 陕西快乐十分选号技巧
北京pk10万能八码技巧 北京pk10四码定位技巧 北京pk10万能八码技巧 北京pk10六码稳赚技巧 北京pk10六码稳赚技巧 北京pk10六码稳赚技巧
北京pk10只押冠军技巧 北京pk10开户 北京pk走势热冷号分析 上海时时乐专业走势图 北京pk10前三在线计划
大华早点怎么加盟 早餐粥车加盟 河南早点加盟 早餐面馆加盟 投资加盟店
大福来早点加盟 早点快餐店加盟 春光早点加盟 加盟早点车 早点加盟网
安徽早餐加盟 早餐早点店加盟 早点快餐加盟店 春光早餐加盟 早点加盟店10大品牌
首钢早餐加盟 早餐加盟好项目 油条早餐加盟 早餐豆浆加盟 早点加盟小吃
平特一肖公式怎样计算 黄金城娱乐 天津快乐十分投注 山西十一选五中奖规则 十一选五任八杀号
特码开奖记录 山西11选5走势 开心十一选五走势技巧 二肖中特035 12选5开奖结果
彩票网址 长江彩票 青海快3历史记录 平特肖心水论坛13022 重庆时时彩
北京赛车pk10计划软件下载 加拿大快乐8开奖视频 陕西十一选五预测 内幕一码中特诗 赌王娱乐