Я часто возюсь с программным обеспечением, собранным из исходников, которые я устанавливаю в $HOME/.local
. Чтобы запустить его, мне нужно экспортировать различные переменные, такие как LD_LIBRARY_PATH
. Но я не хочу экспортировать их все вручнуюкаждыйвремя я хочу использовать некоторые из этих программ. Большинство из них можно экспортировать в мой $HOME/.profile
и .bashrc
файл, но не LD_LIBRARY_PATH
. Этот можно изменить только в /etc/ld.so.conf
. Но я не хочу изменять файлы root. Поэтому мой вопрос: могу ли я создать папку в моей домашней папке / в любом месте, которая будет автоматически рассматриваться как вторая /etc
папка, или есть переменная окружения, которую я могу установить, чтобы она указывала на такой каталог?
решение1
Вы могли бы использовать
команда отмены обмена
для монтирования и замены любого файла или папки, которые вам нравятся. Есть также решение chroot
, но его гораздо сложнее реализовать.
Хороший пример можно найти в посте Могу ли я создать пользовательский файл hosts в дополнение к /etc/hosts?
Theответ от frielp
хороший пример замены hosts
файла:
Частные пространства монтирования, созданные с помощью этой
unshare
команды, можно использовать для предоставления частного файла /etc/hosts процессу оболочки и любым последующим дочерним процессам, запущенным из этой оболочки.# Start by creating your custom /etc/hosts file [user] cd ~ [user] cat >my_hosts <<EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 news.bbc.co.uk EOF [user] sudo unshare --mount # We're now running as root in a private mountspace. # Any filesystem mounts performed in this private mountspace # are private to this shell process and its children # Use a bind mount to install our custom hosts file over /etc/hosts [root] mount my_hosts /etc/hosts --bind [root] cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 news.bbc.co.uk [root] exec su - appuser [appuser] # Run your app here that needs a custom /etc/hosts file [appuser] ping news.bbc.co.uk PING news.bbc.co.uk (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.062 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.026 ms ^C --- news.bbc.co.uk ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 999ms rtt min/avg/max/mdev = 0.026/0.044/0.062/0.018 ms
Команда unshare
заменяет файлы или папки. Так что если вы хотите толькодобавлятьдля некоторых файлов в /etc
, вам потребуется создать файлы замены, добавив свои данные к исходному содержимому.