Скомпилируйте и выполните Awesome в среде без полномочий root

777
ssice

Я хочу установить менеджер окон Awesome . В среде, где я хочу его настроить, у меня нет root-доступа. Это общая среда для всех пользователей факультета, на котором я учусь.

Я могу жестко установить виртуальную машину (что я и сделал) на своем ноутбуке, чтобы быть пользователем root, где мне будет проще.

В моем случае среда, в которой я хочу запустить диспетчер окон, - это Ubuntu, поэтому я установил этот дистрибутив на виртуальную машину.

Я пробовал следующее:

[vm]$ sudo apt-get install awesome The following packages are about to be installed: awesome libev3 libid3tag0 libimlib2 liblua5.1-0 libxcb-icccm1 libxcb-image0 libxcb-keysyms1 libxcb-property1 libxcb-randr0 libxcb-xinerama0 libxcb-xtest0 libxdg-basedir1 menu rlwrap Do you want to continue [Y/n]? n 

У меня теперь есть список зависимостей для awesome, поэтому я скачал их все. Для этого я сделал следующее.

[vm]$ pkgs="awesome libev3 libid3tag0 libimlib2 liblua5.1-0 libxcb-icccm1 libxcb-image0 libxcb-keysyms1 libxcb-property1 libxcb-randr0 libxcb-xinerama0 libxcb-xtest0 libxdg-basedir1 menu rlwrap" # this is just for not writing it all ;) [vm]$ sudo apt-get install --download-only $pkgs .... [vm]$ mkdir -p /tmp/x_debs [vm]$ for pkg in $pkgs; do cp /var/cache/apt/archives/$pkg* /tmp/x_debs/; done [ copies all *.deb from my dependencies to /tmp/x_debs ] 

Теперь я хочу установить зависимости. Для этого я установил поддельную установку dpkg в моей домашней папке:

[vm]$ mkdir $HOME/root [vm]$ mkdir -p $HOME/root/var/lib/dpkg/ [vm]$ touch $HOME/root/var/lib/dpkg/ 

Теперь я попытался установить с помощью dpkg, но не смог:

[vm]$ dpkg --force-not-root --root=$HOME/root --recursive -i /tmp/x_debs 

Сбой при попытке установить разрешения для пакетов и запуска chroot. Поскольку у меня есть root-доступ на этой машине, я запустил его с правами:

[vm]$ sudo dpkg --root=$HOME/root --recursive -i /tmp/x_debs 

Тогда у меня было много вещей (т.е. все: зависимости и собственный WM), установленный внутри $HOME/root. В частности, библиотеки xcb- * были установлены в $HOME/root/usr/libи потрясающий двоичный файл в $HOME/root/usr/bin/awesome.

Если я пытаюсь выполнить Awesome как есть, я получаю сообщение об ошибке, что библиотеки не могут быть загружены. Это нормально, так как они не находятся ни в / usr / lib, ни в / lib. Так что я побежал export LD_LIBRARY_PATH=$HOME/root/usr/lib:$HOME/root/lib:$и удивительным будет пытаться загрузить.

Однако я не мог заставить gdm работать awesomeв gnome или заменять его.

Я сделал это таким образом, чтобы я мог скопировать все в свою папку $ HOME / root, вставить ее на другой компьютер и запустить. Есть ли другой способ (чтобы было меньше потраченного впустую пространства, может быть ..), чтобы сделать это?

Как я могу сказать GDM exec awesomeбез рут-доступа?

Кроме того, могу ли я легко заменить чертовски жестко заданные пути в Awesome путями, которые могут соответствовать моей установке? Желательно с переменной окружения $ HOME в коде.

1
Похоже, вам лучше всего скомпилировать его из исходного кода. Majenko 13 лет назад 0
Либо из источника, мне нужно исправить проблему абсолютных путей в темах и везде через Awesome ssice 13 лет назад 0
@ Matt Jenikins и, между прочим, вы бы предпочли скомпилировать зависимости вручную одну за другой или загрузить их из .deb? Я попытался из источника, но шаги заняли еще больше времени, и мне пришлось искать зависимости гораздо дольше (поскольку у самих deps было еще больше deps) ssice 13 лет назад 0
Никто никогда не говорил, что это будет легко ...: P Majenko 13 лет назад 0
@ Matt Jenkins, исполняемые файлы работают хорошо. Если бы я мог изменить его, это сработало бы. Но я не могу изменить его: я должен изменить пути для работы относительно моего $ HOME без chroot. ssice 13 лет назад 0

0 ответов на вопрос