• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Как в Linux изолировать приложения, всю необходимую для работы программы структуру файлов и библиотек ставить в отдельную папку?

hair3doch

Well-known member
02.02.2022
77
0
BIT
0
Есть каталог /opt там ставятся программы со своей структурой файлов отличных от верисий файлов корневой системы, как это сделать самому в автоматическом режиме, например хочу apt-get установить в Арче и все это установить в отдельную папку, поставил жесткий диск на два терабайта, хочу туда поставить дебиан ветку с кучей софта прямо в арче, без виртуалки и докера. Есть например snap, flatpack пакеты, как их собирают, врядли все файлы в ручную копируют в архив? Если например выполнить команду apt-get install mc в арче то зависимости для mc сломают систему, в apt есть ключ -o Dir=/mnt но он, почему то не работает все пакеты ставит прямо в корень. И интересно возможно ли будет запускать gui приложения. На крайний случай думаю использовать docker, был гайд на хабре как от туда запускать gui firefox.
 
Решение
Есть каталог /opt там ставятся программы со своей структурой файлов отличных от верисий файлов корневой системы, как это сделать самому в автоматическом режиме, например хочу apt-get установить в Арче и все это установить в отдельную папку, поставил жесткий диск на два терабайта, хочу туда поставить дебиан ветку с кучей софта прямо в арче, без виртуалки и докера. Есть например snap, flatpack пакеты, как их собирают, врядли все файлы в ручную копируют в архив? Если например выполнить команду apt-get install mc в арче то зависимости для mc сломают систему, в apt есть ключ -o Dir=/mnt но он, почему то не работает все пакеты ставит прямо в корень. И интересно возможно ли будет запускать gui приложения. На крайний случай думаю...

qwe123xcv

Заблокирован
16.11.2019
57
23
BIT
0
Есть каталог /opt там ставятся программы со своей структурой файлов отличных от верисий файлов корневой системы, как это сделать самому в автоматическом режиме, например хочу apt-get установить в Арче и все это установить в отдельную папку, поставил жесткий диск на два терабайта, хочу туда поставить дебиан ветку с кучей софта прямо в арче, без виртуалки и докера. Есть например snap, flatpack пакеты, как их собирают, врядли все файлы в ручную копируют в архив? Если например выполнить команду apt-get install mc в арче то зависимости для mc сломают систему, в apt есть ключ -o Dir=/mnt но он, почему то не работает все пакеты ставит прямо в корень. И интересно возможно ли будет запускать gui приложения. На крайний случай думаю использовать docker, был гайд на хабре как от туда запускать gui firefox.
Земля тряслась — как наши груди,
Смешались в кучу кони, люди,
И залпы тысячи орудий
Слились в протяжный вой…
... Да, были люди в наше время,​

Прежде всего нужно навести порядок в уровнях виртуализации в Linux.
В линукс существует несколько уровней виртуализации.

Аппаратная виртуализация:
Xen - пожалуй самый низкоуровневый тип виртуализации, гипервизор способный запускать виртуальную машину из загрузчика GRUB.
Немного повыше - виртуализация QEMU. Загрузить виртуальную машину из загрузчика не получится, тем не менее этот тип виртуализации также способен взаимодействовать с физическим железом.

Контернейная виртуализация (виртуализация на уровне операционной системы):
Docker - как раз один из видов контейнерной виртуализации. Но не единственный, и упомянут мною здесь для продолжение твоих мыслей.


Все твои пожелания вполне можно реализовать используя контейнерную виртуализацию.
Наверняка, существует несколько способов материализации твоих пожеланий.
Могу предложить некоторые.
... поставил жесткий диск на два терабайта, хочу туда поставить дебиан ветку с кучей софта прямо в арче, без виртуалки и докера.
Для начала примонтируй свой двухтерабайтовый диск в папку /opt и пропиши автоматическое монтирование в файле /etc/fstab
Для того чтобы впоследствии установить в него дебиан ветку, нужно воспользоваться так называемым окружением chroot. Chroot - также один из видов контейнерной виртуализации, позволяющий изменять адрес корневой файловой систему. При помощи chroot ты сможешь изменить корень файловой системы из "/" на "/opt" . Затем в chroot окружение при помощи программы bootstrap необходимо установить ту самую ветку Дебиан, как ты хочешь. И в этой ветке ты сможешь запускать под арчем свои программы в дебиан -окружении. Описывать этот процесс в рамках данного поста - хлопотно. Этот процесс многократно описан в русскоязычном интернете.

думаю использовать docker, был гайд на хабре как от туда запускать gui firefox.
Для запуска браузера в докере нужно использовать другой вид контейнерной виртуализации - собственно сам докер ))
Этот процесс также описан на страницах журнала ][akep аж в 2014 году.
Образ докера из статьи до сих пор доступен для скачивыния, но версия браузера в этом образе давно устарела. Ничего не мешает тебе собрать новый образ, обновить статейку ))
 
Последнее редактирование:
Решение

hair3doch

Well-known member
02.02.2022
77
0
BIT
0
Решение оказалось простым, есть пакет debootstrap устанавливает debian систему в отдельный каталог, а там через chroot заходить в систему
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!