rcm - administrador de archivos rc: ajuste y uso

Antecedentes


Cuando aparece en sus manos m谩s de un dispositivo que funciona, entonces% username% se le presenta para tener la misma configuraci贸n aqu铆, y all谩, en el trabajo y en el hogar. Cuando comenc茅 a intentar sincronizar archivos, Dropbox y Yandex.disk fueron suficientes para m铆. Fueron especialmente buenos sincronizando documentos e historia de Jabber, pero tan pronto como intent茅 adaptarlos a .bashrc, .vimrc y similares, aparecieron varios efectos secundarios de inmediato. Por ejemplo, con enlaces simb贸licos en ambos sistemas, es un completo desastre, 卤 hay alg煤n tipo de historia solo en Dropbox, bueno, tendr铆a que escribir guiones para administrar el zool贸gico yo mismo. Seguramente ya se ha escrito algo, derecho?


La historia


En la p谩gina https://dotfiles.imtqy.com/ puede ver un poco menos de un centenar de utilidades, complementos y enfoques diferentes para administrar configuraciones, desde programas personalizados hasta programas individuales y universales. Le recomiendo que se familiarice, es muy posible que deje de leer m谩s y elija algo m谩s aceptable.


El significado general de la filosof铆a se reduce al hecho de que las configuraciones est谩n en el repositorio% your_favorit_vcs% en cierta forma y desde all铆 se arrastran a $HOME . Como% default_vcs% es git ahora, lo usar茅 m谩s.


Comenc茅 a conocer a dotfiles-in-git con una utilidad llamada dotgit . Comenz贸 como "simple y directo en puro bash". Pero en el momento en que el autor agreg贸 cifrado all铆 con la capacidad de hacer enlaces simb贸licos directamente al directorio, y trat茅 de resolverlo todo (a principios de 2017), un pepino de mi cerebro sucedi贸 en mi carpeta de inicio con enlaces rotos y recuperaci贸n manual de archivos del gita. En general, se asign贸 un d铆a para buscar alternativas con la posibilidad de ajustar el comportamiento y una configuraci贸n simple.


rcm


Entonces, como ya se mencion贸, realmente hay muchas opciones para las utilidades. rcm fue elegido por las siguientes razones:


  • Pura mierda, ni siquiera una fiesta. No tira de pit贸n ni de rub铆, nada m谩s
  • Le permite configurar el comportamiento de entrega de la configuraci贸n
  • La presencia de p谩ginas man
  • Personalizaci贸n de la implementaci贸n utilizando las carpetas tag-* y host-*
  • Largo apoyo, proyecto de desarrollo animado
  • En el momento del uso, hasta el d铆a de hoy no es relevante, pero se admiten los ganchos {pre,post}-{up,down} para actualizar y borrar archivos de configuraci贸n

El punto m谩s importante es, por supuesto, la documentaci贸n, porque sin ella no habr铆a ido tan lejos como para personalizar completamente el comportamiento de implementaci贸n por m铆 mismo.


Despu茅s de instalar el administrador, 4 comandos estar谩n disponibles:


  • lsrc: enumera c贸mo se ver谩 la configuraci贸n despu茅s de rcup
  • mkrc: agrega el archivo a ~/.dotfiles (de forma predeterminada, puede cambiarlo a ~/.rcrc ) y luego instalarlo nuevamente. Si necesita un comportamiento no est谩ndar, es mejor corregir primero ~/.rcrc , de lo contrario puede haber efectos especiales inesperados.
  • rcdn: elimina todos los archivos de configuraci贸n administrados por rcm.
  • rcup: instala todos los archivos. Si usa la opci贸n -g , se generar谩 un script de shell separado, que tambi茅n se puede colocar en el repositorio para su uso en hosts donde el administrador no est谩 instalado.

Como tal, el ~/.rcrc es simplemente parte del script de shell que se incluye con el comando de source cada vez que se llama a las utilidades rcm. En base a esto, puede hacerse modular, con l贸gica incorporada. Seg煤n la documentaci贸n, su contenido le permite controlar con precisi贸n la configuraci贸n de los archivos de puntos utilizando rcup , por ejemplo:


  • comportamiento predeterminado: para cada archivo dentro de ~/.dotfiles , se crea un enlace simb贸lico en la carpeta de inicio sin un punto de partida (por ejemplo, '/home/felixoid/.dotfiles/bashrc' -> '/home/felixoid/.bashrc' , '/home/felixoid/.dotfiles/README.md' -> '/home/felixoid/.README.md' )
  • daddy ~/.vim : es un enlace simb贸lico a la carpeta /home/felixoid/.dotfiles/vim (opci贸n SYMLINK_DIRS)
  • daddy ~/.some_secret_files : copiado de /home/felixoid/.dotfiles/tag-dmz/some_secret_files (opci贸n COPY_ALWAYS)
  • el archivo ~/.README.md se ignora realmente (opci贸n EXCLUYE)
  • el archivo '/home/felixoid/.zshenv' es un enlace simb贸lico a '/home/felixoid/.dotfiles/tag-zsh/zshenv' (par谩metro TAGS)
  • la ~/bin tambi茅n se gestiona con rcm, su contenido proviene de /home/felixoid/.dotfiles/bin/ (par谩metro UNDOTTED)

A veces puede ser necesario mencionar el mismo archivo en varias opciones. Por ejemplo, el fragmento .rcrc deber铆a verse as铆 si todo el contenido de ~/bin debe estar en ~/.dotfiles/tag-bins/bin y copiarse como est谩:


 COPY_ALWAYS="bin/*" TAGS="bins" UNDOTTED="bin" 

En realidad, un ejemplo de c贸mo organizar el contenido de la carpeta ~/.dotfiles est谩 en el repositorio con dotfiles. La documentaci贸n contiene informaci贸n completa, no dude en leer las siguientes p谩ginas de manual: lsrc (1), mkrc (1), rcrc (5) rcdn (1), rcm (7), rcup (1).


Untold y Untold


Mientras escrib铆a este texto, se me ocurrieron buenas ideas sobre c贸mo organizar el almacenamiento de datos confidenciales dentro de un repositorio p煤blico. Por ejemplo, siempre me preocupaba la pregunta: 驴tiene sentido y es posible hacer una copia de seguridad de las claves gpg y ssh? Solo por esto, los ganchos pueden ser 煤tiles: empacarlos en alquitr谩n, luego cifrarlos con el mismo gpg sim茅trico, seguido de desempaquetarlos. Quiz谩s dedique la siguiente nota a esto despu茅s de la implementaci贸n. O tal vez esta es otra bicicleta? 驴Y todo ya ha sido inventado? Agregue los comentarios si este es realmente el caso.


隆Realmente espero que este material despierte inter茅s y deseo de tratar de organizar la gesti贸n de configuraciones en un modo semiautom谩tico!


Y una peque帽a encuesta:

Source: https://habr.com/ru/post/es419281/


All Articles