相关疑难解决方法(0)

单个主机上有多个glibc库

单个主机上有多个glibc库

我的linux(SLES-8)服务器目前有glibc-2.2.5-235,但我有一个程序无法在这个版本上运行,需要glibc-2.3.3.

是否可以在同一主机上安装多个glibc?

这是我在旧glibc上运行程序时遇到的错误:

./myapp: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./myapp)
./myapp: /lib/i686/libpthread.so.0: version `GLIBC_2.3.2' not found (required by ./myapp)
./myapp: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./libxerces-c.so.27)
./myapp: /lib/ld-linux.so.2: version `GLIBC_2.3' not found (required by ./libstdc++.so.6)
./myapp: /lib/i686/libc.so.6: version `GLIBC_2.3' not found (required by ./libstdc++.so.6)
Run Code Online (Sandbox Code Playgroud)

所以我创建了一个名为newglibc的新目录,并将以下文件复制到:

libpthread.so.0
libm.so.6
libc.so.6
ld-2.3.3.so
ld-linux.so.2 -> ld-2.3.3.so
Run Code Online (Sandbox Code Playgroud)

export LD_LIBRARY_PATH=newglibc:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误:

./myapp: /lib/ld-linux.so.2: version `GLIBC_PRIVATE' not found (required by ./newglibc/libpthread.so.0)
./myapp: /lib/ld-linux.so.2: version `GLIBC_2.3' not found (required by libstdc++.so.6)
./myapp: …
Run Code Online (Sandbox Code Playgroud)

linux gcc glibc

155
推荐指数
7
解决办法
15万
查看次数

核心工具中缺少__vdso_time?

我内置了最新的glibc,现在我遇到像一些麻烦功能的coreutils lscat或其他任何东西一样vim.

我的错误是

-bash-4.0$ cat
cat: error while loading shared libraries: __vdso_time: invalid mode for dlopen(): Invalid argument
Run Code Online (Sandbox Code Playgroud)

我用以下配置构建了glibc而没有错误

../glibc/configure --prefix=/home/ex/uid377/glibbuilt
Run Code Online (Sandbox Code Playgroud)

在旧版本(如2.14)上运行实用程序会导致分段错误.

-bash-4.0$ ./pwd
./pwd: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./pwd)
-bash-4.0$ LD_LIBRARY_PATH=/home/ex/uid377/glibc/lib/:${LD_LIBRARY_PATH}
-bash-4.0$ ./pwd
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

编辑 内核版本

-bash-4.0$ uname -r
2.6.32.26-175.fc12.x86_64
Run Code Online (Sandbox Code Playgroud)

c linux linker gcc glibc

11
推荐指数
1
解决办法
9157
查看次数

是否可以锁定Anaconda中的软件包版本?

我在Windows XP上安装了Anaconda 3 2.3.0.它应该是支持windows xp的anaconda最后一个版本,因为它包含python 3.4.3,而python 3.4.x是支持windows xp的python的最后一个版本.

安装包时

conda安装

,其中一个依赖项是将conda更新为conda 4.x. 运行conda install时,conda 4.x在命令行中崩溃了.这使得anaconda无法使用,我卸载了anaconda.

我的问题是,是否可以锁定软件包的版本?对于这两个用例:

  • 锁定并忘记:对于我永远不希望它们更新的包,我需要运行一个命令来锁定它们,这样它们永远不会更新为依赖项
  • 忽略更新:安装包而忽略更新此更新中按名称传递的某个包.

如果2个用例中只有一个是可能的或已知或更容易,请将其写为答案.

python windows windows-xp python-3.x anaconda

11
推荐指数
1
解决办法
5647
查看次数

在Red Hat版本6.6中导入python2.7中的Tensorflow时出错.'找不到GLIBC_2.17'

这基本上是这里提出的问题的重复.但是,我使用的是Red Hat版本6.6,它有glibc 2.12(glibc 2.17,我认为是RHEL ver 7引入的).是否可以在本地安装tensorflow,而无需升级操作系统.(我没有管理员权限).这是我得到的错误

ImportError: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by /data02/storage/kgupt33/.local/anaconda/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)
Run Code Online (Sandbox Code Playgroud)

python redhat glibc python-2.7 tensorflow

8
推荐指数
1
解决办法
6646
查看次数

从CentOS Linux上的Tomcat访问Tensorflow

我有一个使用Tensorflow进行图像分类的Java演示工作.它在Windows上运行正常,但现在我想从Java Tomcat Web服务器将其作为Web服务运行.

我已将所有Tensorflow jar添加到Tomcat的lib中,但Tensorflow具有jni依赖性.我不知道如何安装和链接这个,所以Tensorflow可以在CentOS Linux服务器上运行.

我已经读过这个,但我不需要在服务器上运行python,只需从Java访问Tensorflow.

更新:**好的,要在Windows上运行Tomcat,我会执行以下操作,

https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-1.6.0.jar下载libtensorflow.jar

然后是来自https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-windows-x86_64-1.6.0.zip的dll (解压zip以获取dll)

请参阅https://www.tensorflow.org/install/install_java

把jar放在我的tomcat lib中,然后创建一个tomcat dll dir并将dll放入其中

编辑我的setenv.bat并添加该行,

SET CATALINA_OPTS=-Xmx4g -XX:PermSize=128m -XX:MaxPermSize=512m -Djava.library.path=D:\Engineering\apache-tomcat-7.0.50\dll
Run Code Online (Sandbox Code Playgroud)

这适用于Windows.

对于Linux,CentOS 6,我也这样做,但不是从dll下载这些文件, https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow_jni-cpu-linux-x86_64-1.6.0.tar. GZ

并编辑我的setenv.sh并添加行,

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/tomcat8/so"
export JAVA_OPTS="-server -Xmx38g -Djava.library.path=/usr/local/tomcat8/so"
export CATALINA_OPTS="-Djava.library.path=/usr/local/tomcat8/so"
Run Code Online (Sandbox Code Playgroud)

但这些似乎都不起作用,我总是得到错误,

找不到适用于OS的TensorFlow本机库:linux,architecture:x86_64.有关 可能的解决方案(例如从源代码构建库),请参阅 https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java/README.md.可以通过将org.tensorflow.NativeLibrary.DEBUG = 1添加到JVM的系统属性来获取有关尝试查找本机库的其他信息.

我发现还有另一个部署选项,只需添加jar,

到lib,它会神奇地找到正确的so文件.

https://mvnrepository.com/artifact/org.tensorflow/libtensorflow_jni

当我尝试这个选项时,似乎找到了这样的文件,但是我收到了这个错误,

/usr/local/tomcat8/temp/tensorflow_native_libraries-1522357321965-0/libtensorflow_jni.so:/lib64/libc.so.6:找不到版本`GLIBC_2.16'(/ usr/local/tomcat8/temp/tensorflow_native_libraries-需要) 1522357321965-0/libtensorflow_jni.so)

好像Tensorflow只支持非常特定的操作系统和版本?

我发现这个, 在Ubuntu 12.04中导入python2.7中的Tensorflow时出错.'找不到GLIBC_2.17'

但尚未尝试任何选项.生产系统看起来并不乐观.

看看GLIBC是什么,它适用于GPU,但我没有或者不需要使用GPU,只想使用CPU,为什么需要这个库?

**更新所以...我试图在Centos6上构建glibc 1.6.0,以便我可以通过以下方式使用它,

https://unix.stackexchange.com/questions/176489/how-to-update-glibc-to-2-14-in-centos-6-5

这些步骤有效,但是导致尝试运行Tensorflow时出现此错误,似乎它依赖于另一个lib ...

加载共享库时出错:__ docso_time:dlopen()的无效模式

此时我已经准备放弃了,并尝试安装Centos7,但这条路线需要我们升级12台生产服务器......

java linux tomcat tensorflow

6
推荐指数
1
解决办法
744
查看次数

在centos 5上安装Tensorflow

我正在尝试在Centos 5上安装Tensorflow.不幸的是,在使用pip安装它之后,正如官方文档中所解释的那样

sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

当我尝试在python shell上导入tensorflow时出现以下错误

ImportError:/home/users/caohao/.jumbo/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so:ELF文件操作系统ABI无效

github上的以下问题给了我一个主角:https: //github.com/tensorflow/tensorflow/issues/350

实际上,tensorflow要求glibc版本至少为2.17

当我输入

ldd --version

我有以下输出:

ldd (GNU libc) 2.5
Run Code Online (Sandbox Code Playgroud)

所以我需要升级glibc.我想执行"并行"安装,因为升级glibc对我的机器来说可能是危险因此我下载了源代码,并且我使用了命令

../glibc-2.18/configure --prefix =/opt/glibc-2.18

将其安装在其他目录中

问题是我启动configure时出现以下错误

configure:错误:汇编程序太旧,.cfi_personality支持缺失

我想我也必须更新binutils,所以我下载了源代码并将其安装在/opt/binutils-2.26/中以免损坏系统.

但是当我尝试配置glibc时,我仍然遇到同样的错误.

这是我的问题:

如何指定我想用哪个版本的binutil来构建glibc?

编辑:我应该有RTFM,答案是使用'--with-binutils = directory'选项

如果将glopc安装在/opt/glibc-2.18中,怎么能让它成为一个好的glibc版本呢?

仅供我使用python 2.7.11

非常感谢和最诚挚的问候

python glibc centos binutils tensorflow

5
推荐指数
1
解决办法
2049
查看次数

请勿在conda环境中正确安装numba/llvmlite

我创建了一个新的conda环境

user@machine:~/project$ conda create -n test-env -c numba python=3.5.2 llvmdev=3.8
Fetching package metadata ...........
Solving package specifications: .

Package plan for installation in environment /home/user/anaconda2/envs/test-env:

The following NEW packages will be INSTALLED:

    llvmdev:    3.8.1-7       numba
    openssl:    1.0.2k-0           
    pip:        9.0.1-py35_1       
    python:     3.5.2-0            
    readline:   6.2-2              
    setuptools: 27.2.0-py35_0      
    sqlite:     3.13.0-0           
    system:     5.8-2         numba
    tk:         8.5.18-0           
    wheel:      0.29.0-py35_0      
    xz:         5.2.2-1            
    zlib:       1.2.8-3            

Proceed ([y]/n)? y

#
# To activate this environment, use:
# > source activate test-env
#
# To deactivate this environment, use: …
Run Code Online (Sandbox Code Playgroud)

python pip llvm numba conda

5
推荐指数
1
解决办法
2771
查看次数

目标文件“版本引用”来自哪里?

目前,我在一个具有文件的目录中libshared-object.so(名称出于一般性而更改)。

当我跑步

$ objdump -p libshared-object.so
Run Code Online (Sandbox Code Playgroud)

我收到以下输出:

libshared-object.so:     file format elf64-x86-64

Program Header:
        LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**21
                 filesz 0x00000000000828ee memsz 0x00000000000828ee flags r-x
        LOAD off    0x0000000000083768 vaddr 0x0000000000283768 paddr 0x0000000000283768 align 2**21
                 filesz 0x00000000000048e0 memsz 0x0000000000004af0 flags rw-
 DYNAMIC off    0x0000000000084af0 vaddr 0x0000000000284af0 paddr 0x0000000000284af0 align 2**3
                 filesz 0x00000000000002a0 memsz 0x00000000000002a0 flags rw-
        NOTE off    0x00000000000001c8 vaddr 0x00000000000001c8 paddr 0x00000000000001c8 align 2**2
                 filesz 0x0000000000000024 memsz 0x0000000000000024 flags r--
EH_FRAME off    0x0000000000072c6c vaddr 0x0000000000072c6c …
Run Code Online (Sandbox Code Playgroud)

c c++ linker gcc

4
推荐指数
1
解决办法
457
查看次数

标签 统计

glibc ×4

python ×4

gcc ×3

linux ×3

tensorflow ×3

c ×2

linker ×2

anaconda ×1

binutils ×1

c++ ×1

centos ×1

conda ×1

java ×1

llvm ×1

numba ×1

pip ×1

python-2.7 ×1

python-3.x ×1

redhat ×1

tomcat ×1

windows ×1

windows-xp ×1