Intereting Posts
Есть ли способ сделать apt-отчет, какие пакеты в dist-upgrade будут использовать дополнительное дисковое пространство? MBR и данные о pendrive В чем смысл опции sshd «UseDNS»? Что такое красная звезда в Ranger? найти совпадающие URL-адреса в строке, а затем сократить их до имени домена Проблема pppd по последовательному кабелю Почему одно и то же sed regex (после grep) выходит из строя при запуске в сценарии bash или командной строке bash? Как перезапустить Alsa / PulseAudio после использования Jack Извлечение данных из файлов в нескольких каталогах Что такое конфигурация iptables для моего рабочего стола? Попытка генерировать случайный проход для пользователей и сохранять их в файле Восстановление файловой системы ext4 с поврежденным журналом Как настроить SSH на Linux для входа в систему без пароля? Игнорировать изменения файла `unbuffer` или` stdbuf` для удаления буферизации stdout?

обновить Python до 2.7.2

У меня встроенная система, работающая на Python 2.6.5 и я хочу, чтобы она обновилась до 2.7.2 (у меня есть работающая система с другим ядром, которое работает 2.7.2 ). Я скопировал двоичный файл, но потом он сказал мне: python: can't load library 'libpython2.7.so.1.0' когда я пытался ее запустить – отлично, я схватил и скопировал это тоже, и теперь я получаю:

 # python Could not find platform independent libraries <prefix> Could not find platform dependent libraries <exec_prefix> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] Segmentation fault 

Как я могу получить эту систему, обновленную до Python 2.7.2 , сохраняя старое исходное ядро ​​- я только хочу обновить Python, а не весь образ – возможно?

Если системы похожи, как вы указали в своих комментариях, то это вполне возможно сделать. То, что вы, скорее всего, пропустите, это /usr/lib/python2.7 или /usr/local/lib/python2.7 , а файлы ниже этого – если вы скопировали исполняемый файл python2.7 из /usr/bin то, скорее всего, бывший, если скопировать из /usr/local/bin скорее всего, последний.

Вы можете указать параметры конфигурации при компиляции Python в Linux для многих частей ( --bindir для исполняемых, --mandir man-страниц и т. Д.), Но, скорее всего, вы не указали их и просто сделали ./configure перед запуском make . Если вы запустите ./configure --help вы увидите, что значение по умолчанию для --prefix , остальное относительно этого, но другие файлы также будут там.

Чтобы узнать все , что вы можете коснуться всего источника, скомпилировать и установить и find (начиная с каталога по умолчанию для опции --prefix для configure ), все, что установило последние X минут.

Вы также можете перекомпилировать заданный неиспользуемый каталог, указав --prefix для configure , таким образом не будет других файлов, кроме тех, которые вам нужно скопировать:

  cd Python-2.7.2 make clean # might fail ignore ./configure --prefix=/opt/py272 make sudo make install 

После этого вы можете настроить все под /opt/py272 (предполагая, что ничего не было до начала компиляции) и скопировать его в целевую систему и извлечь вещи в /opt/py272 .

В целевой системе вы также можете связать /usr/bin/python27 с /opt/py272/bin/python чтобы вы могли использовать строку #! /usr/bin/env python27 #! /usr/bin/env python27 поверх ваших 2.7.2 конкретных скриптов.

Во всем этом вам нужно знать, что вы не можете перемещать файлы из местоположения, указанного во время настройки, так как некоторые пути компилируются в исполняемые файлы / библиотеки, но вы можете ссылаться на исполняемый файл из разумного места (в каком-то каталоге в ваш $PATH ).