好的,所以我在PIL上遇到了一个尚未解决的早期问题。其他人遇到了这个问题,并通过删除旧的 JPEG 库取得了成功。但是,我不能在我的机器上真正做到这一点,因为它是 RHEL 并且很多东西都依赖于 libjpeg 和 libjpeg-devel(当我尝试 yum remove libjpeg 只是为了查看时,总共有 252 个包删除!)
我在 /usr/local/lib 中安装了 jpeg-8。它被python正确使用,但不是被apache使用。以下是来自 lsof 的列表:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd xxxxx root mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
python xxxxx jordan DEL REG 253,3 xxxxx63 /usr/local/lib/libjpeg.so.8.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
所以,这就是我想知道的。鉴于我无法卸载 libjpeg-6b,有什么办法可以强制apache 改用 libjpeg-8?
好的,最近的运行lsof
显示 apache 现在也在加载 libjpeg.so.8.0.0但仍然遇到错误,这表明它仍在使用 62 版本。有没有办法让 8 版本优先?
更新#1
ldd
对 lib64/modules 中的所有模块运行时没有引用 libjpeg。在 PIL 的 _imaging.so 文件上运行ldd
表明它正在使用新版本的 libjpeg。我很确定我的系统上只有一个版本的 PIL——我已经进行了非常彻底的搜索。
有谁知道哪些与 httpd 或 python 相关的程序或模块可能会加载 libjpeg?我知道有些东西正在通过 apache 加载它,因为它显示在lsof
.