Предоставление доступа к программам Ubuntu, для мягкой фетровой шляпы через “chroot”

$ top -bn1 | grep free
KiB Mem:   8117084 total,  6578888 used,  1538196 free,   302216 buffers
KiB Swap:  8060924 total,    26004 used,  8034920 free,  1564856 cached
$ top -bn1 | grep -oP '\S+(?=\s+free)'
1544132
8034920

требует GNU GreeP, но вы пометили «Linux», так что вы в порядке

для просто «MEM»:

top -bn1 | grep -oP 'Mem.*\s\K\S+(?=\s+free)'
1
19.04.2015, 05:57
2 ответа

Установить Schroot в вашей системе Fedora. Schroot - это обертка вокруг Chroot, которая позволяет пользователям без root использовать предопределенные Chroots и организует для домашних каталогов, / PROC и т. Д. Для присутствия в Chroot.

Я написал руководство Schroot в Как запустить 32-битные программы на 64-битной Debian / Ubuntu? с системой Host Fedora, настройка в основном такая же - в основном это распространение в Chroot, которая должна быть настраиваемой. Установите пакет DEBOTSTRAP , чтобы установить Ubuntu в Chroot.

Чтобы вызвать программу в Chroot снаружи, вам нужно вызвать Schroot . Вы можете использовать оболочку оболочки, подобную этому для Chroot вызывается Trusty :

#!/bin/sh
exec schroot -c trusty -p -q -- "${0##*/}" "$@"

Сделайте символические ссылки на этот скрипт с именами программ, которые вы хотите вызвать. Например, если этот скрипт расположен в / usr / local / bin / trusty , и вы хотите, и вы хотите команду ACROREAD , чтобы вызвать программу в доверительном кроте, сделать символическую ссылку

ln -s trusty /usr/local/bin/acroread
0
28.01.2020, 01:41

Chroot вообще не решит вашу проблему. На самом деле Chroot заставит вас запускать эту программу, как если бы вы были в самой убунту, а не в Fedora. Вам понадобится сложная установка, чтобы получить доступ к вашей файловой системе за пределами Chroot. Chroot предназначен больше для изоляции.

Одно хорошее решение для вашей проблемы, однако, просто использовать переменные среды. Может быть, небольшой сценарий Bash, который устанавливает ваш путь к расположению Ubuntu, а также может работать LD_LIBRARY_PATH.

Например, что-то вроде:

#!/bin/bash
export PATH=PATH_TO_UBUNTU_BIN:$PATH
export LD_LIBRARY_PATH=PATH_TO_UBUNTU_LIB:$LD_LIBRARY_PATH
acroread

где path_to_ubuntu_bin и path_to_ubuntu_lib должны быть путями к вашему bin ubuntu (например / bin и / usr / local / bin или где ваш акрорей каталог (например / lib или / lib64).

0
28.01.2020, 01:41

Теги

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