Estou tentando instalar o Python2.7 no chromebook cr-48 no modo de desenvolvedor e encarar um problema estranho que estou tendo dificuldade em procurar uma solução no google. Primeiro, alguns antecedentes .. a partição raiz é montada somente para leitura, então eu tenho instalado pacotes em / usr / local, que é um ponto de montagem separado que é gravável. Existe uma maneira de forçar a própria partição raiz a readwrite (com algumas desvantagens menores), mas eu decidi não seguir esse caminho. Eu tenho baixado pacotes do archlinux e os extrai em / usr / local e vários deles têm funcionado muito bem até agora. Eu basicamente extrai o arquivo .tar.xz
da seguinte forma:
xz -dc package.tar.xz | sudo tar --strip-components=1 -C /usr/local -xvf -
Isso basicamente faz com que os arquivos destinados a / usr estejam em / usr / local. Eu exporto /usr/local/lib
à frente de /usr/lib
sob o LD_LIBRARY_PATH
e tenho vários pacotes para funcionar bem dessa maneira. Por algum motivo, o python não consegue reconhecer isso, embora não tenha certeza do que o causa. Depois de expandir o pacote python 2.7 que obtive do site do archlinux , consegui iniciar o shell do python e uma simples impressão funcionou bem. Eu então tentei instalar o setuptools, então baixei o código do pypy e tentei rodar o sudo /usr/local/python2 setup.py install
, mas ele continuou me dando o seguinte erro:
/usr/local/bin/python2: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
O arquivo libpython2.7.so.1.0
está no diretório /usr/local/lib/
, que está em LD_LIBRARY_PATH
. Uma rápida execução do ldd mostra isso claramente:
chronos@localhost /tmp/setuptools-1.1.6 $ ldd /usr/local/bin/python2
linux-gate.so.1 (0x777a9000)
libpython2.7.so.1.0 => /usr/local/lib/libpython2.7.so.1.0 (0x77610000)
libpthread.so.0 => /lib/libpthread.so.0 (0x775ee000)
libc.so.6 => /lib/libc.so.6 (0x77464000)
libdl.so.2 => /lib/libdl.so.2 (0x77460000)
libutil.so.1 => /lib/libutil.so.1 (0x7745b000)
libm.so.6 => /lib/libm.so.6 (0x77436000)
/lib/ld-linux.so.2 (0x777aa000)
Também verifiquei /etc/ld.so.conf
e também /usr/local/lib
:
chronos@localhost /tmp/setuptools-1.1.6 $ cat /etc/ld.so.conf
# ld.so.conf autogenerated by env-update; make all changes to
# contents of /etc/env.d directory
/lib
/usr/lib
/usr/local/lib
/usr/lib/opengl/xorg-x11/lib
Instalei strace
(e perl
desde que ele esteja listado como dependente) e executei o comando de instalação em strace
, que mostra a saída abaixo interessante (veja que NÃO está procurando /usr/local/lib/libpython2.7.so.1.0
em qualquer lugar) :
chronos@localhost /tmp/setuptools-1.1.6 $ sudo strace /usr/local/bin/python2 setup.py installPassword:
execve("/usr/local/bin/python2", ["/usr/local/bin/python2", "setup.py", "install"], [/* 16 vars */]) = 0
brk(0) = 0x9b3c000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x776e6000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=37049, ...}) = 0
mmap2(NULL, 37049, PROT_READ, MAP_PRIVATE, 3, 0) = 0x776dc000
close(3) = 0
open("/lib/tls/i686/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/i686/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/i686", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/lib/tls/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/lib/tls/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/tls", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/lib/i686/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/i686/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/lib/i686/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/i686", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/lib/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/lib/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib/tls/i686/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/tls/i686/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/i686/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/tls/i686", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/tls/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/tls", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/i686/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/usr/lib/i686/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/i686", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/usr/lib/sse2/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/sse2", 0x7fd88d90) = -1 ENOENT (No such file or directory)
open("/usr/lib/libpython2.7.so.1.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
writev(2, [{"/usr/local/bin/python2", 22}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libpython2.7.so.1.0", 19}, {": ", 2}, {"cannot open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, {"\n", 1}], 10/usr/local/bin/python2: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
) = 141
exit_group(127) = ?
+++ exited with 127 +++
Eu sempre obtive caminhos de instalação personalizados para funcionar apenas incluindo o caminho da lib em LD_LIBRARY_PATH
e exportando-o, então não tenho certeza do que mais eu poderia estar perdendo aqui. Qualquer ajuda é muito apreciada.