A menudo juego con software creado a partir de la fuente, que instalo en formato $HOME/.local
. Para que se ejecute, tengo que exportar varias variables como LD_LIBRARY_PATH
. Pero no quiero tener que exportarlos todos manualmente.cadavez quiero usar algo de ese software. La mayoría de ellos se pueden exportar en mi archivo $HOME/.profile
y .bashrc
, pero no en LD_LIBRARY_PATH
. Éste sólo se puede cambiar en /etc/ld.so.conf
. Pero no quiero modificar los archivos de root. Entonces mi pregunta es: ¿Puedo crear una carpeta en mi carpeta de inicio/en cualquier lugar, que será tratada automáticamente como una segunda /etc
carpeta, o hay una variable de entorno que puedo configurar para que apunte a dicho directorio?
Respuesta1
Podrías usar el
comando para dejar de compartir
para montar y reemplazar cualquier archivo o carpeta que desee. También existe la solución de chroot
, pero es mucho más complicada de implementar.
Un buen ejemplo se encuentra en la publicación. ¿Puedo crear un archivo hosts específico del usuario para complementar /etc/hosts?
Elrespuesta por frielp
es un buen ejemplo para reemplazar el hosts
archivo:
Los espacios de montaje privados creados con el
unshare
comando se pueden usar para proporcionar un archivo /etc/hosts privado a un proceso de shell y a cualquier proceso secundario posterior iniciado desde ese shell.# 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
El unshare
comando reemplaza archivos o carpetas. Así que si sólo deseasagregarPara algunos archivos en /etc
, deberá crear los archivos de reemplazo agregando sus datos al contenido original.