创建符号链接失败

ksk*_*skp 3 linux symlink centos6 syntaxnet

我正在尝试在我的 CentOS 6.7 机器上升级 glibcxx。我做了这里给出的步骤。

现在,当我这样做时:

strings /opt/google/chrome/lib/libstdc++.so.6 | grep GLIBC
Run Code Online (Sandbox Code Playgroud)

我列出了 GLIBCXX_3.4 到 GLIBCXX_3.4.22。

为了在我的 Syantaxnet 构建中使用这个文件,我创建了一个符号链接:

ln -s /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

ln: creating symbolic link `/usr/lib64/libstdc++.so.6': File exists
Run Code Online (Sandbox Code Playgroud)

编辑1:

我认为错误是由于相同的文件名并将 /opt/google/chrome/lib/libstdc++.so.6 重命名为 libstdc++.so.6_new。命令仍然失败。

有人可以帮我解决这个问题吗?另外,这是错误的解决方案:

/usr/local/bin/bazel: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/local/bin/bazel)
/usr/local/bin/bazel: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/bin/bazel)
Run Code Online (Sandbox Code Playgroud)

Emp*_*ian 6

我认为错误是因为文件名相同

错误告诉你/usr/lib64/libstdc++.so.6已经存在。

如果要更换它,请执行以下操作:

ln -sf /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)

或这个:

rm -f /usr/lib64/libstdc++.so.6
ln -s /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/libstdc++.so.6
Run Code Online (Sandbox Code Playgroud)

并将 /opt/google/chrome/lib/libstdc++.so.6 重命名为 libstdc++.so.6_new

那是完全错误的做法。在尝试修复它之前,您应该尝试了解错误告诉您的内容。

我将 /opt/google/chrome/lib/libstdc++.so.6 文件的内容复制到 /usr/lib64/libstdc++.so.6 并使其工作。

这有一个缺点:如果/opt/google/chrome/lib/libstdc++.so.6更新,/usr/lib64则不会复制。您可能应该ln -sf改为执行上述操作。