Я часто возился с программным обеспечением, созданным из исходных текстов, которое я устанавливаю в $HOME/.local
. Чтобы заставить его работать, мне нужно экспортировать различные переменные, такие как LD_LIBRARY_PATH
. Но я не хочу экспортировать их все вручную каждый раз я хочу использовать некоторые из этого программного обеспечения. Большинство из них можно экспортировать в моем $HOME/.profile
и .bashrc
файл, но не LD_LIBRARY_PATH
. Это можно изменить только в /etc/ld.so.conf
. Но я не хочу изменять файлы root. Итак, мой вопрос: могу ли я создать папку в моей домашней папке / в любом месте, которая будет автоматически рассматриваться как вторая /etc
папка, или есть переменная среды, которую я могу установить, чтобы указать на такой каталог?
1 ответ
Вы можете использовать
не делиться командой
смонтировать и заменить любой понравившийся файл или папку. Также есть решение chroot
, но реализовать его гораздо сложнее.
Хороший пример можно найти в посте
Могу ли я создать файл hosts для конкретного пользователя в дополнение к / etc / hosts?
В ответ от 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
, вам нужно будет создать файлы замены, добавив свои данные к исходному содержимому.