Я использую CentOS с VPS, на котором установлен Python 2.4, что, к сожалению, означает, что я должен избегать его взлома.Поэтому я устанавливаю Python 2.6 как отдельную установку, а затем использую virtualenv.Вчера я установил Python 2.6 с --enable-shared, чтобы я мог скомпилировать mod_wsgi - и он работал нормально.Сегодня мне пришлось начинать с нуля и переустанавливать Python 2.6 как общую библиотеку - и она сломалась по неизвестным причинам.Я надеюсь, что кто-то может сказать мне , почему он сломался.
Обратите внимание, что я не просто спрашиваю, как это исправить, но почему он сломался.Я почти уверен, что один из ответов на это - «установить переменную LD_LIBRARY_PATH».Я не хочу делать это по двум причинам.Во-первых, я не делал этого вчера , и все работало.Во-вторых, я должен избегать взлома части CentOS на Python 2.4, и если я добавлю эту переменную в свою среду через .bashrc, я не уверен, что, если что-то еще, может сломаться.
Установка Python 2.6
deleted/created all relevant directories, not just *make clean*
tar -xzvf Python-2.6.6.tgz
./configure --prefix=/foo/python26 --enable-shared
make
make altinstall
Все , казалось, работало, в выводах make не было явных ошибок.Просто этот Python не будет работать.
Скрытие библиотеки на виду
bin/python2.6: error while loading shared libraries: libpython2.6.so.1.0:
cannot open shared object file: No such file or directory
[/foo/python26/lib]# ls -l
lrwxrwxrwx 1 root root 19 May 27 15:09 libpython2.6.so -> libpython2.6.so.1.0*
-r-xr-xr-x 1 root root 5624403 May 27 15:09 libpython2.6.so.1.0*
drwxr-xr-x 25 root root 20480 May 27 15:09 python2.6/
[/foo/python26/bin]# ls -l
-rwxr-xr-x 1 root root 10142 May 27 15:09 python2.6*
-rwxr-xr-x 1 root root 1433 May 27 15:09 python2.6-config*
missing file! yesterday there was a 'python' linked to python2.6
[/foo/python26/bin]# ldd python2.6
libpython2.6.so.1.0 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ababe46c000)
Третья причина, по которой я не хочу устанавливать LD_LIBRARY_PATH , заключается в том, чтоНе имеет смысла смысл .Процесс make создал разделяемую библиотеку и скопировал ее в нужный каталог.Python знает , где он находится, файл находится в своем собственном каталоге lib .
Так что же изменилось со вчерашнего дня, когда оно работало, до сегодняшнего дня, когда оно сломалось?Я установил несколько других пакетов, таких как django (которые я удалил) и nginx - я не удалял nginx, но не понимаю, как это могло повлиять на что-либо.