Файлы для разработчика установки локально для построения на системе без корневого доступа?

Сначала один

Одно время, я определил псевдоним, чтобы помочь мне убрать временные файлы:

alias clean_dir_tmp="find /tmp -maxdepth 1 -user **** | grep *** | xargs rm -rf"

и конечно однажды, когда я имел, забывают то, что делал псевдоним, я ввел с опечаткой:

$ clean_dir_tmp *

Я думаю, что потерял хорошие несколько за секунды до того, как я понял то, что происходило... :(

Второй

Я работал, как обычно, со своим ноутбуком Mac и своим рабочим столом Ubuntu. Когда я включил внешний HD Mac (HFS + файловая система) в Ubuntu, я заметил, что владелец был ?????. Мой UID отличался на моем Mac и на моем рабочем столе поэтому, так как я хотел более хороший вывод с ls -l, Я решил изменить это.

Таким образом, я изменил UID на Mac и запустил большое chown -R * на HD из Ubuntu. Единственная вещь, которую я не знал, состояла в том, что HFS + драйвер для Linux не был стабилен. По сей день я не смог смонтировать этот HD на Linux или моем Mac снова...

9
16.09.2010, 19:22
4 ответа

Я делал это вполне часто в моем последнем задании - решение, которое, казалось, работало, лучше всего должен был создать ~/usr каталог и использовать - аргумент префикса для указания на эти./настраивающему сценариев в правильном направлении. Вот шаги:

  • Создайте ~/usr каталог, и включайте, освободите и каталоги bin под ним.
  • В Вашем .profile .bashrc, или другой оболочке init сценарий, добавляют следующее (или эквивалентный на диалекте Вашей оболочки):
    export PATH=$PATH:~/usr/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/usr/lib
    export C_INCLUDE_PATH=$C_INCLUDE_PATH:~/usr/include
    export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:~/usr/include
  • При создании пакетов использовать ./configure --prefix=/home/<username>/usr

Это расположение работало на меня для большинства ситуаций, где я должен был создать вещи в пространстве пользователя. Самая твердая часть обычно находит и создает все зависимости, в которых Вы нуждаетесь, но это просто берет некоторый поиск с помощью Google, или разумное использование Вашего диспетчера пакетов 'получают источник' функциональность.

13
27.01.2020, 20:05
  • 1
    Не вполне работал на меня. Настраивать сценарий, кажется, ничего не находит в ~/usr –  postfuturist 16.09.2010, 03:31
  • 2
    у меня была та же проблема @postfuturist. Я закончил тем, что фиксировал его при помощи ${HOME} вместо ~ во всех моих вызовах экспорта, и затем pkg-конфигурируются, было счастливо и смог найти, что мой пользователь установил библиотеки и пакеты. tar –  phyatt 28.10.2015, 18:21

Обычно необходимо смочь реконфигурировать и изменить код для определения нового местоположения в корневом каталоге или другого пути для всех библиотек и программ...

Но по моему скромному мнению, самым легким путем (если у Вас есть много пространства) является использование chroot в подкаталоге со всем дистрибутив Linux, установленный в нем. Из cuorse как обычный пользователь Вы не можете использовать chroot, но можно использовать эти большие инструменты: fakechroot и fakeroot

Для создания chroot файловой системы мне нравится развертывать каталог с Debian (или любая производная Debian как человечность) использование debootstrap утилиты.

Таким образом, процедура легка (я не войду в технические детали, прочитать справочники по командам):

  • Получите и установите: fakeroot, fakechroot и debootstrap инструменты
  • создайте подкаталог с помощью debootstrap (я только смог выполнить это как корень. Можно сделать это в другом компьютере и скопировать двоичные файлы в случае необходимости),
  • Выполнитесь: fakechroot fakeroot chroot mydebian-dir

Если Вам нужно больше деталей, я думаю, что у меня был сценарий где-нибудь, чтобы сделать все это.

3
27.01.2020, 20:05

Другое решение для этой проблемы использует хинду Префикс, как пользователи MacOSX и другая платформа (solaris, AIX) делает:

http://www.gentoo.org/proj/en/gentoo-alt/prefix/

Это скомпилирует хинду стек (с перевозкой) в месте $PREFIX. Это использует хинду пакеты, большинство пакетов поддерживает использование этих настроек.

Перевозка будет отслеживать все зависимости, у Вас будет последняя версия программного обеспечения, это было протестировано сообществом...

1
27.01.2020, 20:05

Если prefix=/home/foo/usr не работает, пробуют:

CFLAGS=-I/home/foo/usr/include LDFLAGS=-L/home/foo/usr/lib ./configure
1
27.01.2020, 20:05

Теги

Похожие вопросы