当非root用户删除libc.so.6之后。。。

解决TensorFlow安装中GLIBCXX版本问题

         某天晚上,我美滋滋地边看论文边安装TensorFlow,身心非常愉悦,直到安装过程中,出现了这么一个错误

/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found

     后来网上搜索解决方案,才知道是GCC版本太老了,libstdc++.so.6下没有这个3.4.19版本的glibc。于是我按照教程 https://github.com/qiwsir/ITArticles/blob/master/Linux/upgrade_gcc_on_Centos.md。将GCC的版本更新到4.8.1。然后再用命令查询:

strings libstdc++.so.6.0.18|grep GLIBCXX

       此时已经看到了版本中有GLIBCXX_3.4.19。

    (1)如果是在自己的用户目录下操作,就需要 从路径/usr/local/lib64拷贝文件libstdc++.so.6.0.18到路径/usr/lib64下

cp /usr/local/lib64/libstdc++6.0.18 /usr/lib64

 (2)此时要删除原来的软链接,在这之前最好备份软链接(可以看看后面惨痛的教训)

rm -r libstdc++.so.6</
<think>我们正在讨论的是如何运行 `libc.so.6` 文件。根据之前的讨论,我们知道 `libc.so.6` 是一个特殊的共享库文件,它被设计成可以直接执行以显示版本信息。 引用[3]中提到:直接运行 `libc.so.6` 会输出其版本信息。具体来说,我们可以通过终端执行它(需要提供完整路径)。 步骤: 1. 首先,我们需要知道 `libc.so.6` 在系统中的位置。通常它位于 `/lib`、`/lib64`、`/usr/lib` 或 `/usr/lib64` 等目录下。对于64位系统,常见路径是 `/lib/x86_64-linux-gnu/libc.so.6` 或 `/lib64/libc.so.6`。 2. 在终端中,使用绝对路径运行该文件。注意:由于这是一个共享库文件,直接运行它并不会像普通程序那样执行应用程序逻辑,而是会打印出该库的版本信息。 示例命令: ```bash /lib/x86_64-linux-gnu/libc.so.6 ``` 或者 ```bash /lib64/libc.so.6 ``` 注意:运行它不需要任何参数,直接执行即可。 但是,请注意以下几点: - 如果系统中没有该文件,或者路径不正确,命令会失败。 - 运行共享库文件通常不是常规操作,但 `libc.so.6` 是一个特例,它被编译为可以执行以显示版本信息。 根据引用[2]中的经验,我们也要注意:不要随意替换或删除这个文件,否则可能导致系统崩溃。 因此,运行 `libc.so.6` 的方法就是直接在终端中通过其绝对路径执行。 如果运行后出现错误,比如提示没有权限,可以使用 `sudo` 来运行(但通常不需要,因为该文件一般对所有用户执行)。如果提示找不到文件,请确认路径是否正确。 另外,如果系统已经因为操作此文件而出现问题(如引用[2]中的情况),则可能需要使用救援模式或使用 `LD_PRELOAD` 技巧来修复。 所以,针对用户的问题“如何执行或运行 libc.so.6 文件”,我们给出如下答案:</think>要运行 `libc.so.6` 文件,请按照以下步骤操作: ### 1. 确认文件位置 首先找到 `libc.so.6` 的完整路径(通常在 `/lib` 或 `/lib64` 目录): ```bash $ ls -l /lib/x86_64-linux-gnu/libc.so.6 lrwxrwxrwx 1 root root 12 Apr 10 2023 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.31.so ``` ### 2. 直接执行文件 使用绝对路径直接运行(这是 `libc.so.6` 特有的功能): ```bash $ /lib/x86_64-linux-gnu/libc.so.6 ``` 输出示例: ``` GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.9) stable release version 2.31. Copyright (C) 2020 Free Software Foundation, Inc. ... ``` ### 关键注意事项 1. **必须使用绝对路径** 直接输入 `libc.so.6` 会失败,需完整路径如 `/lib/x86_64-linux-gnu/libc.so.6` 2. **仅显示信息不执行程序** 运行结果只显示版本信息(如图),不会执行其他程序功能 ![libc.so.6 执行输出示例](https://via.placeholder.com/600x200?text=GNU+C+Library+Version+2.31) 3. **不要替换或删除** ⚠️ 误操作会导致系统崩溃(如引用[2]中 `mv/ls` 等命令失效)[^2] 4. **特殊设计** 这是唯一可直接执行的 `.so` 文件(其他库如 `libm.so.6` 运行会段错误) ### 替代查看版本方法 ```bash $ ldd --version ldd (Ubuntu GLIBC 2.31-0ubuntu9.9) 2.31 ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值