1271
Comment: minor fix
|
← Revision 5 as of 2020-03-14 12:13:39 ⇥
4617
sync with English master v. 11
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from it/SmallSVNAdministrationTutorial | |
Line 2: | Line 3: |
||<tablestyle="width: 100%;" style="border: 0px hidden">~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[SmallSVNAdministrationTutorial|English]] - Italiano-~||<style="text-align: right;border: 0px hidden"> (!) [[/Discussion|Discussion]]|| | ||<tablestyle="width: 100%;" style="border: 0px hidden">~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[SVNAdministrationTutorial|English]] - Italiano-~|| |
Line 4: | Line 5: |
Sebbene il pacchetto DebianPackage:subversion fornisce un leggero server subversion, '''DebianMan:svnserve''', non fornisce i mezzi per eseguire questo server come servizio. Qui verranno discussi due modi per farlo. | |
Line 5: | Line 7: |
= Esecuzione da inetd = | = Esecuzione di svnserve usando systemd = I sistemi Debian moderni usano [[it/systemd|systemd]] per l'esecuzione e la gestione dei servizi, perciò è meglio avviare il server '''svnserve''' usando systemd. Come prima cosa, creare un utente di sistema per eseguire il servizio (root non è necessario ed è un po' insicuro). {{{ # useradd -r svn }}} Poi creare un repository svn radice e darne la proprietà all'utente svn {{{ # mkdir -p /srv/svn/repos; chown svn /srv/svn/repos }}} Creare la configurazione del servizio systemd per svnserve {{{/etc/systemd/system/svnserve.service}}}: {{{ [Unit] Description=Subversion protocol daemon After=syslog.target network.target [Service] Type=forking RuntimeDirectory=svnserve PIDFile=/run/svnserve/svnserve.pid EnvironmentFile=/etc/default/svnserve ExecStart=/usr/bin/svnserve $DAEMON_ARGS User=svn Group=svn KillMode=control-group Restart=on-failure [Install] WantedBy=multi-user.target }}} Poi aggiungere le opzioni di avvio del servizio in {{{/etc/default/svnserve}}}: {{{ # svnserve options DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root /srv/svn/repos --log-file /var/log/svnserve/svnserve.log" }}} Queste opzioni vengono usate dal servizio per avviare svnserve. Dopo aver fatto questo, creare una posizione per i file di log e dare all'utente svn i permessi per utilizzarla: {{{ # mkdir /var/log/svnserve; chown svn /var/log/svnserve }}} Aggiungere un file di configurazione per logrotate, per archiviare adeguatamente questo registro di log ogni tanto. {{{/etc/logrotate.d/svnserve}}}: {{{ /var/log/svnserve/*.log { daily missingok rotate 14 compress notifempty create 640 svn adm sharedscripts postrotate if /bin/systemctl status svnserve > /dev/null ; then \ /bin/systemctl restart svnserve > /dev/null; \ fi; endscript } }}} Da ultimo abilitare il servizio, avviarlo e controllare che funzioni come atteso {{{ # systemctl enable svnserve.service # systemctl start svnserve.service # systemctl status svnserve.service * svnserve.service - Subversion protocol daemon Loaded: loaded (/etc/systemd/system/svnserve.service; enabled) Active: active (running) since Tue 2019-12-31 21:53:16 MSK; 39s ago Process: 798 ExecStart=/usr/bin/svnserve $DAEMON_ARGS (code=exited, status=0/SUCCESS) Main PID: 799 (svnserve) CGroup: /user.slice/user-1000.slice/session-31211.scope/system.slice/svnserve.service `-799 /usr/bin/svnserve --daemon --pid-file /run/svnserve/svnserve.pid --root /srv/svn/repos --log-file /var/log/svnserve/svnserve.log Dec 31 21:53:16 svn svnserve[798]: DIGEST-MD5 common mech free Dec 31 21:53:16 svn systemd[1]: Started Subversion protocol daemon. }}} In seguito, il servizio svnserve dovrebbe partire automaticamente all'avvio del sistema. Questa guida è basata su [[https://stackoverflow.com/questions/38197727/how-to-start-svnserve-with-systemctl-systemd/40584047#40584047 |questa voce in stackoverflow]] = Esecuzione di svnserve da inetd = |
Line 26: | Line 123: |
''Nota: se si sta cercando un tutorial sull'uso di un client subversion, si veda la pagina [[it/SmallSVNTutorial|SmallSVNTutorial]]'' | ---- ''Nota: se si sta cercando un tutorial sull'uso di un client subversion, si veda la pagina [[it/SVNTutorial|Tutorial SVN]]'' ---- CategorySoftware |
Sebbene il pacchetto subversion fornisce un leggero server subversion, svnserve, non fornisce i mezzi per eseguire questo server come servizio. Qui verranno discussi due modi per farlo.
Esecuzione di svnserve usando systemd
I sistemi Debian moderni usano systemd per l'esecuzione e la gestione dei servizi, perciò è meglio avviare il server svnserve usando systemd.
Come prima cosa, creare un utente di sistema per eseguire il servizio (root non è necessario ed è un po' insicuro).
# useradd -r svn
Poi creare un repository svn radice e darne la proprietà all'utente svn
# mkdir -p /srv/svn/repos; chown svn /srv/svn/repos
Creare la configurazione del servizio systemd per svnserve /etc/systemd/system/svnserve.service:
[Unit] Description=Subversion protocol daemon After=syslog.target network.target [Service] Type=forking RuntimeDirectory=svnserve PIDFile=/run/svnserve/svnserve.pid EnvironmentFile=/etc/default/svnserve ExecStart=/usr/bin/svnserve $DAEMON_ARGS User=svn Group=svn KillMode=control-group Restart=on-failure [Install] WantedBy=multi-user.target
Poi aggiungere le opzioni di avvio del servizio in /etc/default/svnserve:
# svnserve options DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root /srv/svn/repos --log-file /var/log/svnserve/svnserve.log"
Queste opzioni vengono usate dal servizio per avviare svnserve.
Dopo aver fatto questo, creare una posizione per i file di log e dare all'utente svn i permessi per utilizzarla:
# mkdir /var/log/svnserve; chown svn /var/log/svnserve
Aggiungere un file di configurazione per logrotate, per archiviare adeguatamente questo registro di log ogni tanto. /etc/logrotate.d/svnserve:
/var/log/svnserve/*.log { daily missingok rotate 14 compress notifempty create 640 svn adm sharedscripts postrotate if /bin/systemctl status svnserve > /dev/null ; then \ /bin/systemctl restart svnserve > /dev/null; \ fi; endscript }
Da ultimo abilitare il servizio, avviarlo e controllare che funzioni come atteso
# systemctl enable svnserve.service # systemctl start svnserve.service # systemctl status svnserve.service * svnserve.service - Subversion protocol daemon Loaded: loaded (/etc/systemd/system/svnserve.service; enabled) Active: active (running) since Tue 2019-12-31 21:53:16 MSK; 39s ago Process: 798 ExecStart=/usr/bin/svnserve $DAEMON_ARGS (code=exited, status=0/SUCCESS) Main PID: 799 (svnserve) CGroup: /user.slice/user-1000.slice/session-31211.scope/system.slice/svnserve.service `-799 /usr/bin/svnserve --daemon --pid-file /run/svnserve/svnserve.pid --root /srv/svn/repos --log-file /var/log/svnserve/svnserve.log Dec 31 21:53:16 svn svnserve[798]: DIGEST-MD5 common mech free Dec 31 21:53:16 svn systemd[1]: Started Subversion protocol daemon.
In seguito, il servizio svnserve dovrebbe partire automaticamente all'avvio del sistema.
Questa guida è basata su questa voce in stackoverflow
Esecuzione di svnserve da inetd
Per il protocollo svn:// si deve aggiungere una riga al file /etc/inetd.conf per avviare svnserve automaticamente, ad esempio:
svn stream tcp nowait mio_utente_svn /usr/bin/svnserve svnserve -i -r /srv/svn
/srv/svn è dove risiedono i depositi (così gli utenti non devono avere /srv/svn incluso nei loro URL), e mio_utente_svn è l'utente con i permessi di lettura e scrittura sui depositi. Probabilmente si vorrà creare un utente specifico per l'esecuzione del servizio svnserve.
Dopo ave modificato il file /etc/inetd.conf eseguire come utente root
update-inetd --enable svn
C'è un duplice motivo per usare l'opzione -r :
- Rendere gli URL più corti.
- Garantisce che gli utenti remoti possano accedere solo alla parte del file system Unix designata.
Nota: se si sta cercando un tutorial sull'uso di un client subversion, si veda la pagina Tutorial SVN