/usr/bin/env: ln: 符号链接级别太多

2024-02-22

这个问题快要了我的命,我觉得我已经尝试了一切。

首先,问题是在升级到 Capistrano 3 时开始出现的。Capistrano 现在在部署时在每个命令之前使用 /usr/bin/env,以确保环境设置正确。

当 Capistrano 创建指向必要的共享目录和相应文件的符号链接时,它会尝试以下命令:

/usr/bin/env ln -s /full/path /different/full/path

...然后就出错了:

/usr/bin/env: ln: Too many levels of symbolic links

我意识到这不是 Capistrano 的错,所以我开始通过 ssh 连接到我的服务器并尝试相同的命令来进行故障排除,并且我收到了相同的错误(这至少有利于一致性)。然后我在没有 /usr/bin/env 的情况下尝试相同的命令:

ln -s /full/path /different/full/path

并且有效!!!!也许你能看到我看不到的真正解决方案?

这是 /usr/bin/env 命令的输出:

rvm_bin_path=/home/deployer/.rvm/bin
GEM_HOME=/home/deployer/.rvm/gems/ruby-1.9.3-p392
TERM=xterm-256color
SHELL=/bin/bash
IRBRC=/home/deployer/.rvm/rubies/ruby-1.9.3-p392/.irbrc
SSH_CLIENT=...
OLDPWD=/home/deployer/Sites/example.com
MY_RUBY_HOME=/home/deployer/.rvm/rubies/ruby-1.9.3-p392
SSH_TTY=/dev/pts/0
USER=deployer
LS_COLORS= .....
_system_type=Linux
rvm_path=/home/deployer/.rvm
SSH_AUTH_SOCK=....
rvm_prefix=/home/deployer
MAIL=/var/mail/deployer
PATH=/home/deployer/.rvm/gems/ruby-1.9.3-p392/bin:/home/deployer/.rvm/gems/ruby-1.9.3-p392@global/bin:/home/deployer/.rvm/rubies/ruby-1.9.3-p392/bin:/home/deployer/.rvm/bin:/opt/rubyee/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/deployer/.rvm/bin
PWD=/home/deployer/Sites
LANG=en_US.UTF-8
_system_arch=i386
_system_version=12.04
rvm_version=1.26.4 (latest)
SHLVL=1
HOME=/home/deployer
LOGNAME=deployer
GEM_PATH=/home/deployer/.rvm/gems/ruby-1.9.3-p392:/home/deployer/.rvm/gems/ruby-1.9.3-p392@global
SSH_CONNECTION=....
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
RUBY_VERSION=ruby-1.9.3-p392
_system_name=Ubuntu
_=/usr/bin/env

我还尝试了如下命令来查找潜在的符号链接循环:

find . -maxdepth 20 -type l -exec ls -ld {} +

但没有产生正确的结果:

lrwxrwxrwx 1 deployer deployer ...

您可能没有使用相同的ln公用事业。

当直接从交互式 shell 调用它时,ln可能会被覆盖,例如由一个alias或者通过一些 shell 函数ln() {...;}.

当以下情况时不会发生这种情况/usr/bin/env试图做到这一点(据我所知,它寻找ln in PATH)。我怀疑ln它发现存在问题,因此您会收到此错误。

这是一个示例场景,可能与您的情况类似:

# start from an empty directory
$ ls -l
total 0
# create a problematic `ln` in the current directory
$ ln -s ln ln
$ ls -l
total 0
lrwxrwxrwx 1 me me 2 Jan  7 20:28 ln -> ln
# have an alias for the "real" ln
$ alias ln=/bin/ln
# mess up PATH
$ PATH="$PWD"

现在让我们尝试两种选择,/usr/bin/env首先:

$ /usr/bin/env ln -s /some/path /tmp/path
/usr/bin/env: ln: Too many levels of symbolic links

然后平淡ln(请记住,我们aliased it):

$ ln -s /some/path /tmp/path
$ echo $?
0
$ /bin/ls -l /tmp/path
lrwxrwxrwx 1 me me 10 Jan  7 20:31 /tmp/path -> /some/path

所以我的建议是:看看问题ln,例如通过寻找所有可能的不同替代方案visible. In bash你可以运行这个:

$ type -a ln
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

/usr/bin/env: ln: 符号链接级别太多 的相关文章

  • 如何从 mysqldump 中删除表

    如何删除 mysqldump 中包含大量表的一个大表的输出 我有一个 6 GB 大的数据库转储 但其中 90 只是一个日志记录表 cache entries 我的备份中不再需要它 如何轻松删除转储中描述大型日志记录表的部分 我找到了这个 h
  • 设计涟漪

    我正在尝试使用以 riak 作为数据库的设备创建身份验证 我找到了同样的 ORM 策略https github com frank06 devise ripple https github com frank06 devise ripple
  • 如何使用 ruby​​zip 库获取压缩文件的内容?

    我正在尝试提取上传的 zip 文件并将其内容存储在数据库中 每个文件一个条目 rubyzip 库几乎没有有用的文档 有一个资产表 其中包含键 string 文件名 和数据 binary 文件内容 我正在使用 ruby zip 库 并且已经做
  • to_proc 方法在 Ruby 中意味着什么?

    我正在学习 Rails 并关注这个线程 https stackoverflow com questions 1961030 我被困住了to proc方法 我认为符号只是字符串的替代品 它们就像字符串 但在内存方面更便宜 如果我还缺少任何其他
  • Ruby 多维数组

    也许只是我缺乏在这里找到东西的能力 这就是问题所在 但我找不到任何关于如何在 Ruby 中创建多维数组的信息 有人可以给我一个如何做的例子吗 严格来说 在 Ruby 中创建多维数组是不可能的 但是可以将一个数组放入另一个数组中 这与多维数组
  • 用于读取文件的 Bash 脚本

    不知道为什么最后一行没有从脚本中删除 bin bash FILENAME 1 while read line do cut d f2 echo line done lt FILENAME cat file 1 test 2 test 3 t
  • 如何将文件中的行读入数组?

    这就是我想做的 但有一句话 lines Array new File open test txt each line lines lt lt line 可能的 执行如下操作 File readlines test txt Read 文档 h
  • 字符串被两个不同的分隔符分割

    我有这样的字符串 some dasd dasd dasdas dasdas dasd das dsad 我需要用两个不同的符号将字符串拆分为数组 and 所以我想得到数组 some dasd dasd dasdas dasdas dasd
  • 如何清除 ruby​​ 中 rspec 测试之间的类变量

    我有以下课程 我想确保类 url 只为所有实例设置一次 class DataFactory url nil def initialize begin if url nil Rails logger debug Setting url url
  • 在 Windows 上安装 RMagick

    我对此进行了研究 并且在我的一台计算机上花了几个小时 大约三周前 我在我的台式计算机上安装了 RMagick 它相当复杂 我不记得我采取的具体步骤 我真的很沮丧 我已将 ImageMagick 安装到我的计算机上的目录 C ImageMag
  • 忽略 sed 查找和替换命令中的斜杠

    我正在尝试在终端中使用 sed 进行查找和替换 在 apache 配置文件中 我尝试替换 DocumentRoot var www with DocumentRoot var www mysite com public html 从命令行
  • 安装了 Rails 但它说我没有:)

    我刚刚执行了这个命令来安装 Rails gem install rails 它似乎运行良好并安装了东西 然后当我按照本教程进行操作时 http guides rubyonrails org getting started html http
  • 使用 grep 查找所有匹配的模式

    In txt1 S01A1P2 S01A1P5 S01A1P4 In txt2 data train wave S01A1P3 mfc data train wave S01A1P7 mfc data train wave S01A1P8
  • Virtualenv 激活脚本不会在带有 set -euo 的 bash 脚本中运行

    我正在尝试创建一个激活 virtualenv 的 bash 脚本 pip 安装 requests txt 并继续 这将是我的 init sh 脚本 供以后使用 usr bin env bash set euo pipefail DIR sc
  • wget 并行下载文件并重命名

    我有一个包含两列的文本文件 第一列是要保存的名称 第二列是资源的 url 地址 10000899567110806314 jpg http lifestyle inquirer net files 2018 07 t0724cheekee
  • Bash touch - 非法选项 -d

    昨天我拍了很多照片 但我忘记更改相机中的时区 现在所有图片的修改日期都有错误 我想将特定目录中所有文件的修改日期更改为minus 10 hours bin sh for i in Users slick Desktop 100D5200 d
  • mongoid 中的嵌入文档与哈希数据类型

    我找不到任何讨论此问题的博客文章或文档 它们 嵌入式文档和哈希数据类型 非常相似 彼此相比有何好处或限制 考虑我的架构设计 class HistoryTracker include Mongoid Document include Mong
  • Sublime Text 是否支持 Ruby API(自动完成)?

    如何获取可用于某些对象或类的方法列表 如下所示 Sublime Text 有针对 Ruby 的此功能吗 像这样https github com BoundInCode Display Functions https github com B
  • BASH 中的空函数

    我正在使用 FPM 工具创建 deb 包 此工具在从支持的文件中删除包之前 之后创建 不幸的是FPM生成的bash脚本包含这样的函数 dummy 该脚本退出时出现错误 语法错误 意外 BASH 不允许空函数吗 哪个版本的 bash linu
  • Rails:将参数从视图传递到控制器

    我在 Rails 中有以下模型 class Task lt ActiveRecord Base attr accessible description name project belongs to project validates na

随机推荐

  • 垂直滚动条绝对位置

    有没有办法让跨浏览器垂直滚动条具有绝对位置 我的问题是 滚动条在出现时会改变我网站的宽度 从而在布局中给出一些问题 我不想删除它 我只是想让它的宽度不干扰我的布局 Thanks 仅在 Safari 和 Chrome 即 Webkit 中 您
  • 如何验证JWT签名?

    我想使用 Go AppEngine 后端对 Android 用户进行身份验证 我可以通过以下方式轻松在 Android 中获取 ID 令牌http android developers blogspot co il 2013 01 veri
  • 减少大型 JavaScript 操作对客户端的明显延迟的方法

    作为 Chrome 扩展的一部分 我对文档结束事件中的许多 最多 3000 个 元素执行一些正则表达式替换 在最坏的情况下 在相当不错的 PC 上的 Chrome 34 0 1847 116 m 中 该操作可能需要 gt 180 秒才能完成
  • java中如何在多个类中使用一个接口?

    我有 1 个 Activity 和 2 个 Fragment 我想要在活动发生火灾时listener receivePreview obj then 执行 OneFragment gt receivePreview 执行 TwoFragme
  • NodeJS HTTP 请求 POST ERROR 套接字挂起

    您好 我在给定大量 json 对象数组的 NodeJS 上执行 HTTP 请求时遇到问题 给定小数组 json 对象 该请求工作正常 但是 如果我尝试增加 json 数组的大小 我收到错误 套接字挂起 error code ECONNRES
  • 当鼠标悬停在嵌入的 iframe 上时防止父页面滚动

    无需限制 iframe 内的滚动或需要专门命名可滚动元素 我有一个类似谷歌地图的小部件 可以以 iframe 嵌入代码的形式嵌入到第三方网站中 当人们在我的小部件上使用鼠标滚轮时 我只想滚动小部件的内容而不是父页面 我的问题类似于如何在滚动
  • 如何向 Watson 对话响应添加操作?

    我已经毫无问题地创建了意图 实体和对话 但现在我正在尝试做到这一点 以便当用户发送 再见 时 应用程序将关闭 根据该文档 我必须命名一个与意图相关的操作 我怎么做 是通过代码还是通过对话工作区平台 您可以使用context variable
  • 员工 ID 自动生成,带前缀

    我很困惑我希望员工 ID 是自动生成的前缀格式 我知道这可能是在 sql server 中触发之前发生的 我正在关注帖子http www aspdotnet suresh com 2012 04 set custom auto genera
  • Environment.getExternalStorageDirectory() 在 API 级别 29 java 中已弃用

    在 android Java 上工作 最近将 SDK 更新到 API 级别 29 现在显示一条警告 指出 Environment getExternalStorageDirectory 在 API 级别 29 中已弃用 我的代码是 priv
  • 运算符()的部分特化

    我的一个类声明了一个模板化函数 template
  • 如何从可绘制文件夹上的图像获取路径并将其设置为图像视图、位图?

    我的可绘制文件夹中已经有一些来自 android 项目的图片 我创建了一些对象 代理 然后我需要设置imageView我将这张图片保存在数据库中 所以 我将图片另存为String photoPath Uri path1 Uri parse
  • 无法通过延迟绑定解析类

    some imports public class Menu final MenuMaker myClass GWT create MenuMaker class ERROR 我的 gwt xml
  • 在 Angular 5 中动态加载子组件

    我想以角度动态加载子组件 父组件将根据某些条件加载子组件 我们是否可以在父组件打字稿文件中定义子组件名称 并在 HTML 中使用字符串插值来加载组件 例如在父组件打字稿中 componentName someCondition compon
  • AngularJS 在 div 中预先输入搜索结果

    我使用 Bootstrap 的 typeahead 进行文本输入 该输入还有一个按钮可以弹出流行的结果弹出窗口 我想要预输入的功能 只是结果列表将显示在不同的 div 中 在弹出窗口内而不是在文本输入下 有没有办法为预先输入搜索结果设置 容
  • generic.GenericForeignKey() 字段可以为 Null 吗?

    我正在创建一个对象 该对象跟踪有关其他所谓的创建 更新和删除的更改 更新 UUIDSyncable数据库中的对象 这涉及任何扩展的对象UUIDSyncable班级的save and delete 方法被重写 从而创建一个新的Update记录
  • Android 中订阅 BLE 指示的示例

    我已连接到蓝牙设备 我能够使用读取特征 mGatt readCharacteristic getMiliService getCharacteristic uuid 但我无法注册某个特征的指示 我尝试过的 boolean flag1 m G
  • 如何在PythonMagick中处理多页图像?

    我想将一些多页 tiff 或 pdf 文件转换为单独的 png 图像 从命令行 使用 ImageMagick 我只是这样做 convert multi page pdf file out png 我将所有页面作为单独的图像 file out
  • 逐行读取并获取上一行和下一行

    我正在尝试逐行读取文件并获取当前行 上一行和下一行 例如 line1 line2 line3 line4 我想要的是 None line1 line2 line1 line2 line3 line2 line3 line4 这是我的尝试 p
  • 链接器符号 __TMC_END__ 和 __TMC_LIST__ 的用途是什么?

    我问过这个问题 https stackoverflow com questions 17605034 linker script relocate section并偶然发现 TMC END 似乎是由链接器生成的符号 我不知道它的目的是什么
  • /usr/bin/env: ln: 符号链接级别太多

    这个问题快要了我的命 我觉得我已经尝试了一切 首先 问题是在升级到 Capistrano 3 时开始出现的 Capistrano 现在在部署时在每个命令之前使用 usr bin env 以确保环境设置正确 当 Capistrano 创建指向