![](/style/images/good.png)
![](/style/images/bad.png)
Inštalácia SVN pod Linuxom
source link: https://novotnyr.github.io/scrolls/instalacia-svn-pod-linuxom/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Inštalácia SVN pod Linuxom
2010/03/18
Inštalácia pod Linuxom [svnserve]
- Pridat do
/etc/services
:
svnserve 3690/tcp # Subversion svnserve
svnserve 3690/udp # Subversion svnserve
- pridat do
/etc/xinetd.d/svnserve
1. default: on
1. Subversion server
service svnserve
{
socket_type = stream
protocol = tcp
user = svn
wait = no
disable = no
server = /usr/local/bin/svnserve
server_args = -i
port = 3690
}
- nastavit firewall (vo Fedore): v subore
/etc/rc.d/rc.firewall
uviest
1. open SVN port
/sbin/iptables -A INPUT -j ACCEPT -p tcp --dport 3690
Pozor na pravidla, ktore sa vyhodnocuju zhora nadol!
- restartnut
xinetd
:
service xinetd restart
- kontrola, ci server bezi
> telnet localhost 3690
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
( success ( 1 2 ( ANONYMOUS ) ( edit-pipeline ) ) )
Ďalšie príkazy
Vytvorenie repository
svnadmin create /home/svn/svnroot
Import dát z projektu
svn import . file:///home/svn/svnroot -m "Initial import"
Spustenie servera ako démona
svnserve -d -r /home/svn/svnroot
Ako vykopat zo SVN zmazany subor?
Treba zistit cislo revizie, v ktorej bol subor naposledy zmazany. Obnovenie suboru je potom mozne dosiahnut zavolanim prikazu na revizii o jedna mensej:
D:\project-ui\src\tools\core2>svn up -r 859 RatedJobOffer.java
A RatedJobOffer.java
Updated to revision 859.
Autentifikácia používateľov
Použitím authz
Do svnserve.conf
dodať:
[general]
authz-db=authz
Upraviť súbor authz
[groups]
google2devs = john,joe,george
keymasterdevs = peter,juraj
admins = jose
[/]
* = r
@admins = rw
[repository:/projects/google2]
@google2devs = rw
[repository:/projects/keymasterdevs]
@keymasterdevs = rw
Cez pre-commit
- V úložisku v adresári
/hooks
premenovaťpre-commit.tmpl
napre-commmit
a poeditovať ho tak, aby sa udávali absolútne cesty k súborom (viď nižšie).
1. Check that the author of this commit has the rights to perform
1. the commit on the files and directories being modified.
/home/svn/svnroot/hooks/commit-access-control.pl "$REPOS" "$TXN" /home/svn/svnroot/hooks/commit-access-control.cfg || exit 1
- Skopírovať do adresára
/hooks
súborcommit-access-control.pl
a chmodnúť ho na executable. - Skopírovať do adresára
/hooks
súborcommit-access-control.cfg
[Projekty]
match = ^projects
users = joe
access = read-write
[Projekty - google2]
match = ^projects/google2
users = john,joe,george
access = read-write
Hlási to IniFiles.pm
Ak to hlási nemožnosť nájsť IniFiles.pm
Can't locate Config/IniFiles.pm in @INC
- Exportnite premennú prostredia aby sťahovač Perlu z CPANu podporoval pasívne FTP:
export FTP_PASSIVE=1
- Doinštalujte
perl-CPAN
> yum install perl-CPAN
- Spustite CPAN, upgradnite ho a doinštalujte príslušný package
IniFiles
> cpan
> install Bundle::CPAN
> install Config::IniFiles
Inštalácia pod Linuxom [http]
Stiahnuť mod_dav_svn
a uviesť do LoadModule
za klauzulu LoadModule mod_dav
. Niektoré distribúcie to robia automaticky.
Do httpd.conf
dodať:
<Location />
DAV svn
SVNPath /svn # cesta vo filesysteme k ulozisku
AuthType Basic
AuthName "UINF PF UPJS Subversion repository"
AuthUserFile /etc/svn/http-passwd
Require valid-user
AuthzSVNAccessFile /etc/svn/authz
</Location>
Klauzula AuthUserFile
Udáva mená a heslá v apachovskom formáte. Používateľa možno založiť cez:
htpasswd -cm /etc/http-passwd harry
Klauzula AuthzSVNAccessFile
Obsahuje špecifikáciu authz
(viď príklady vyššie)
Inštalácia pod Fedorou, autentifikácia cez MySQL
Skontrolovať prítomnosť apr-mysql
s podporou MySQL pre httpd
yum install apr-util-mysql
Načítať do httpd príslušné moduly:
LoadModule dbd_module modules/mod_dbd.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
Vytvoriť databázu
- prihlásiť sa do MySQL
mysql -u root
- vytvoriť databázu
CREATE DATABASE apacheauth;
create user 'apache'@'localhost' IDENTIFIED BY 'XXXXXX';
grant all privileges on apacheauth.* to 'apache'@'localhost';
use apacheauth
create table authn (user varchar(20) not null, password varchar(255) not null);
- dokonfigurovať moduly v
httpd.conf
1. mod_dbd configuration
DBDriver mysql
DBDParams "host=localhost dbname=apacheauth user=apache pass=XXXXXXX"
DBDMin 4
DBDKeep 8
DBDMax 20
DBDExptime 300
Dokonfigurovať adresár:
<Location /svn>
DAV svn
SVNPath /var/svn/repositoryroot
AuthType Basic
AuthName "UINF PF UPJS Subversion repository"
Require valid-user
AuthBasicProvider dbd
AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
</Location>
Meniť heslá je dobré:
update authn set password=encrypt('mocneheslo', 'salt') where user='chuck';
Nezabudnite na to, že salt musí byť rovnaká ako v prípade ručnej kontroly v PHP skripte, ktorý porovnáva zadané a uložené heslo.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK