Puncte:2

Care este modalitatea oficială Debian/Ubuntu de a instala fișiere de configurare noi în directoarele utilizatorilor?

drapel ph

Creez un pachet care include câteva setări implicite pentru utilizatori. Lucruri care apar în general sub ~/.<un-un-nume> sau ~/.config/<aplicație>/<unele>.conf și fișiere similare.

În cele mai multe cazuri, aceste fișiere sunt instalate în directorul schelet (/etc/skel), dar acestea vor fi instalate numai în directoarele de acasă ale utilizatorilor noi. Aș dori ca utilizatorii existenți să primească și fișierele în momentul instalării pachetului.

Ce spune standardul Debian despre asta?


Pentru un exemplu concret, am un .lessfilter script-ul pe care aș dori să-l adaug la mine pachet personal astfel încât să fie instalat pe toate mașinile mele.

Deci în mine alex-tools.install fisierul pe care il am:

scripturi/.lessfilter /etc/skel

Știu că pot crea un alex-tools.postinst script așa (nu a fost încă testat, utilizați cu grijă):

#!/bin/sh -e
#
# Finalizați instalarea

#DEBHELPER#

# Bibliotecă debconf sursă.
. /usr/share/debconf/confmodule

dacă [ "$1" = "configurează" ]
atunci
    # Instalați fișiere în folderele utilizatorului
    #
    pentru tine în /root /home/*
    do
        dacă ! test -f „${u}/.lessfilter”
        atunci
            cp /etc/skel/.lessfilter „${u}/.lessfilter”
            chmod 700 „${u}/.lessfilter”
            chown „${u}” „${u}/.lessfilter”
        fi
    Terminat
fi

Dar mă gândesc că acest lucru ar putea să nu fie considerat „legal” în Debian și ar putea exista o modalitate mai curată de a implementa astfel de lucruri?

Există ceva despre asta în referințele Debian?

Puncte:1
drapel jp

Nu sunt sigur de recomandările oficiale pentru crearea configurației per utilizator în timpul instalării pachetului, dar linkurile pe care le-am găsit cu siguranță o descurajează. Cu toate acestea, dacă v-am instalat pachetul, acesta este al meu opinie despre cum aș dori să fie proiectat.

Instalarea fișierelor de configurare

Multe programe vor verifica mai întâi o locație de configurare globală (de ex. /etc/my_program) înainte de a verifica o configurație per utilizator (de ex. ~/.programul_meu). Când este posibil, configurația ar trebui să fie plasată în locația globală.

Exemplul dvs. concret de instalare a unui fișier de configurare per utilizator pentru ~/.lessfilter este interesant pentru că asta nu are un fișier de configurare global opțiune. În acest caz, dacă furnizați pachetul pachetul_meu atunci s-ar putea

  • creați o configurație globală la /usr/share/my_package/lessfilter
  • adăugați un script /etc/profile.d/my_package cu conținut ca
[ -f „${HOME}/.lessfilter” ] || cp /usr/share/my_package/lessfilter „${HOME}/.lessfilter”

Acest lucru ar permite multă flexibilitate. Un dezavantaj evident este că /etc/profile s-ar putea să afecteze numai sesiunile interactive Bash și este posibil să fie nevoie să susțineți alte scenarii.

Legături

drapel ph
Oh, deci de fiecare dată când cineva se conectează, scripturile de sub `/etc/profile.d` rulează. Asta e bine. `cp` ar putea fi, de asemenea, un `ln -s ...` în acest caz. Așa aș putea oferi un scenariu „neutru” care nu face absolut nimic. Apoi, utilizatorul poate comuta între versiunea completă sau scriptul care nu face nimic.
drapel ph
Ca o notă secundară, am creat un proiect numit [advgetopt](https://github.com/m2osw/advgetopt) care are capacitatea de a accepta administrarea globală (`/usr/share/...`) (`/ etc/...`) și fișierele de configurare definite de utilizator (`~/.config/...`) în modul citire și scriere și formate oarecum diferite. Deci înțeleg modul normal de a avea setări. Din păcate, „mai puțin” nu este încă atât de avansat pe cât ați descoperit. De asemenea, pachetul meu personal este în parte pentru a evita să fiu nevoit să fac toate aceste setări manual de fiecare dată când instalez un nou server Ubuntu...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.