Есть сервер, на котором я работаю, на котором установлена более старая версия Linux. У меня нет root-доступа к системе, поэтому я хотел создать более свежую версию инструмента, который я часто использую (Vim 7.3). Я подумал, что просто собрал его и установил в ~ / bin. Однако для этого требуются файлы разработки ncurses, которые не установлены в масштабе всей системы. Я нашел ncurses-devel rpm и извлек папки 'lib' и 'include', куда бы я их поместил и как сказать сценарию ./configure найти их, чтобы я мог правильно настроить и собрать пакет локально?
Изменить: я закончил работать вокруг этого, установив идентичные ОС в Virtualbox, и собрав там пакет и скопировав двоичные файлы.
Ответы:
Я делал это довольно часто в своей последней работе - решение, которое, казалось, работало лучше всего, заключалось в создании каталога ~ / usr и использовании аргумента --prefix для направления скриптов ./configure в правильном направлении. Вот шаги:
./configure --prefix=/home/<username>/usr
Эта схема работала для меня в большинстве ситуаций, когда мне нужно было создавать вещи в пространстве пользователя. Самым сложным обычно является поиск и построение всех необходимых вам зависимостей, но для этого нужно просто прибегнуть к поиску в Google или рассудительному использованию функции менеджера пакетов 'get source'.
источник
${HOME}
вместо~
всех моих экспортных вызовов, а затем pkg-config был счастлив и смог найти мои установленные пользователем библиотеки и пакеты.Обычно вы должны быть в состоянии повторно настроить и изменить код, чтобы определить новое местоположение в вашем домашнем каталоге или другой путь для всех библиотек и программ ...
Но, IMHO, самый простой способ (если у вас достаточно места) - использовать chroot в подкаталоге со всеми установленными в нем дистрибутивами linux. Конечно, как обычный пользователь, вы не можете использовать chroot , но вы можете использовать эти замечательные инструменты: fakechroot и fakeroot
Чтобы создать файловую систему chroot, я хотел бы развернуть каталог с помощью Debian (или любого производного от Debian, такого как ubuntu), используя утилиту debootstrap .
Так что процедура проста (я не буду вдаваться в технические подробности, прочитайте инструкции по эксплуатации):
Если вам нужно больше подробностей, я думаю, у меня был сценарий, чтобы сделать все это.
источник
Другое решение этой проблемы - использование префикса Gentoo, как это делают пользователи MacOSX и другие платформы (solaris, AIX):
http://www.gentoo.org/proj/en/gentoo-alt/prefix/
Он скомпилирует стек Gentoo (с помощью portage) в папке $ PREFIX. Он использует пакеты Gentoo, большинство пакетов поддерживают использование этих настроек.
Portage будет отслеживать все зависимости, у вас будет последняя версия программного обеспечения, она была протестирована сообществом ...
источник
Если
prefix=/home/foo/usr
не работает, попробуйте:источник