LINUX.ORG.RU

Временно смонтировать /usr/local

 , , , ,


2

3

Нужно временно смонтировать все файлы и папки внутри определённых папок /usr/local в /usr, с «заменой», но на время. При чём, при монтировании, те файлы, которые в /usr не были замещены, должны остаться. Простыми словами, приоритет local должен быть выше чем приоритет usr, но программы должны думать, что это всё лежит в /usr. Симлинки не подходят, сразу говорю, они заменяют всё без отмены. Монтирование обыкновенное тоже не подходит, оно стирает те файлы которые не были заменены, т.к их нет в local. Я просто установил musl libc, а он из local не может получить доступ к некоторым заголовкам и многому другому. Устанавливать его напрямую в /usr мне не удобно, т.к нужно будет вернуть обратно для некоторых сборок, а там уже всё окажется испорченным.



Последнее исправление: gradle (всего исправлений: 1)

Монтируй с помощью оверлейной файловой системы (overlayfs, aufs, union).

andytux ★★★★★
()

^^^^^ вот этого камрада ЛОРчую.

в ядре надо включить только одну опцию в filesystems > overlayfs

mount -t overlay overlay /usr/local -o lowerdir=/usr/local1,upperdir=/usr/local2,workdir=/usr/local3

пусть /usr/local пустая директория, тогда

lowerdir — это директория со статичными файлами которые не меняются, «оригинал»

upperdir — это директория куда будут записываться данные поверх, не затрагивая оригинал

workdir — это «мусорная» директория, она вообще не нужна, но её просто просят указывать.

Spoofing ★★★★★
()
Ответ на: комментарий от gradle

Вводить ту же самую команду, только mount заменить на unmount?

gradle
() автор топика

man mount | grep –bind

anonymous
()
Ответ на: комментарий от gradle

потом скрыть ту папку, которую я из local брал? Чтобы в local её не было видно.

А это тебе виднее. Если она не нужна, то удаляй (скрывай).

andytux ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.