【发布时间】:2018-01-23 04:50:05
【问题描述】:
一系列不幸的事件(在 dev 中,谢天谢地)基本上毁了我的 python2.7 环境。 /usr/bin 中的可执行文件被破坏,一些 rpm 运行异常。所以我不再有一个可行的import yum 环境。我实际上启动了另一个 EC2 实例并复制了 python exec,希望 lib 路径相同,但遗憾的是我得到了这个(使用 -v 运行):
( various imports then )
import gpg.core # precompiled from /usr/lib64/python2.7/site-packages/gpg/core.pyc
# /usr/lib64/python2.7/site-packages/gpg/gpgme.pyc matches
/usr/lib64/python2.7/site-packages/gpg/gpgme.py
import gpg.gpgme # precompiled from /usr/lib64/python2.7/site-packages/gpg/gpgme.pyc
dlopen("/usr/lib64/python2.7/site-packages/gpg/_gpgme.so", 2);
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/gpg/__init__.py", line 101, in <module>
from . import core
File "/usr/lib64/python2.7/site-packages/gpg/core.py", line 34, in <module>
from . import gpgme
File "/usr/lib64/python2.7/site-packages/gpg/gpgme.py", line 17, in <module>
_gpgme = swig_import_helper()
File "/usr/lib64/python2.7/site-packages/gpg/gpgme.py", line 16, in swig_import_helper
return importlib.import_module('_gpgme')
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named _gpgme
这有点令人不安,因为_gpgme.so 与gpgme.py 和ldd 位于同一目录中,_gpgme.so 看起来不错:
-bash-4.2$ ldd /usr/lib64/python2.7/site-packages/gpg/_gpgme.so
linux-vdso.so.1 => (0x00007ffe2cf6d000)
libpython2.7.so.1.0 => /usr/lib64/libpython2.7.so.1.0 (0x00007ff166d5d000)
libgpgme.so.11 => /usr/lib64/libgpgme.so.11 (0x00007ff166b27000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff16690b000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff166547000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff166343000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007ff166140000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff165e3e000)
libassuan.so.0 => /usr/lib64/libassuan.so.0 (0x00007ff165c2e000)
libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00007ff165a2a000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff1673e7000)
所以问题是:如何强制从 AWS Linux 映像 (Linux version 4.9.75-25.55.amzn1.x86_64 (mockbuild@gobi-build-64013) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Fri Jan 5 23:50:27 UTC 2018) 中删除 python 并重新安装它没有 yum 的好处,然后安装必要的 yum 位,以便 @ 987654332@(几乎就是import yum)有效吗?
我知道这个问题是部分欺骗,但我已经搜索了 stackoverflow,一切似乎都回到了用 yum 安装 python(我不能)或用 pip 安装模块(它继续用 yum 安装 pip!)或者很笼统地说rpm --erase vagueness,后跟rpm -i vagueness。
我确实从源代码手动重建了一个 python exec 并运行,但它当然不附带 yum 并且我似乎在 pip search 中找不到任何会产生 @ 987654338@我寻求的模块。你会认为pip install yum 会在那里,但没有。也许我错过了什么……?
我必须相信,也许有一种缓慢但稳定的方法可以做到这一点。淘汰/usr/bin/python2.7 exec 不应该造成我似乎有鸡和蛋问题的情况......
【问题讨论】:
标签: python linux amazon-web-services rpm yum