Как установить Awesome WM без рут-доступа?

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

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

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

$ 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, поэтому я скачал их все. Для этого я сделал следующее.

$ 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 ;)
$ sudo apt-get install --download-only $pkgs
....
$ mkdir -p /tmp/x_debs
$ 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 в своей домашней папке:

$ mkdir $HOME/root
$ mkdir -p $HOME/root/var/lib/dpkg/{triggers,updates}
$ touch $HOME/root/var/lib/dpkg/{available,status}

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

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

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

$ 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:${LD_LIBRARY_PATH} и удивительно попытался бы попытаться загрузить.

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

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

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

5
задан 9 March 2011 в 03:40

2 ответа

Я все еще не добился успеха, но на данный момент мне удалось получить большую часть этого.

Устанавливая каждую зависимость в среде fakeroot, система считает, что каждая зависимость правильная. За исключением самого Awesome.

Конфигурация написана так плохо, что каждый компонент имеет свой путь, жестко закодированный в каждом файле конфигурации. Когда у меня будет время, я попытаюсь «решить» эту проблему и перекомпилировать Awesome.

Если у кого-то еще есть решение, которое я хотел бы узнать и обсудить, возможно, отметьте его как принятое.

0
ответ дан 9 March 2011 в 03:40

Создайте сценарий оболочки с именем .xsession в вашем $ HOME, который делает все, что нужно для запуска сеанса, и выберите «Пользовательский сеанс» на экране входа в GDM.

0
ответ дан 9 March 2011 в 03:40

Другие вопросы по тегам:

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