Skip to main content

Compile subversion on Fedora core 6

I just move to new company. My first job here is setup a svn on FC6 box. This post is about how i built it.
First download, compile and install apache[must be 2.0 version to have same apr version as subversion-deps-1.4.6.tar.bz2]
[root@localhost ~]# wget http://mirrors.issp.co.th/apache/httpd/httpd-2.0.63.tar.bz2
...
[root@localhost ~]# tar xjf httpd-2.0.63.tar.bz2
[root@localhost ~]# cd httpd-2.0.63
[root@localhost httpd-2.0.63]# ./buildconf
[root@localhost httpd-2.0.63]# ./configure --enable-dav --enable-so --enable-maintainer-mode --prefix=/usr/local/apache20
...
[root@localhost httpd-2.0.63]# make && make install
...
[root@localhost httpd-2.0.63]# cd ..
[root@localhost ~]#

then download subversion source code and the subversion dependencies source code, extract both then go to compile and install apr, apr-util, neon and subversion itself.
[root@localhost ~]# wget http://subversion.tigris.org/downloads/subversion-1.4.6.tar.bz2
...
[root@localhost ~]# wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.bz2
...
[root@localhost ~]# tar xjf subversion-1.4.6.tar.bz2
[root@localhost ~]# tar xjf subversion-deps-1.4.6.tar.bz2
[root@localhost ~]# cd subversion-1.4.6/apr
[root@localhost apr]# ./configure --prefix=/usr/local/apr
...
[root@localhost apr]# make && make install
...
[root@localhost apr]# cd ../apr-util
[root@localhost apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
...
[root@localhost apr-util]# make && make install
...
[root@localhost apr-util]# cd ../neon
[root@localhost neon]# ./configure --prefix=/usr/local/neon
...
[root@localhost neon]# make && make install
...
[root@localhost neon]# cd ..
[root@localhost subversion-1.4.6]# ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache20/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-neon=/usr/local/neon/ --with-ssl
...
[root@localhost subversion-1.4.6]# make && make install
...
[root@localhost subversion-1.4.6]#

now subversion is already installed, add apache user
[root@localhost subversion-1.4.6]# groupadd apache
[root@localhost subversion-1.4.6]# useradd -g apache -d /usr/local/apache20
[root@localhost subversion-1.4.6]# chown -Rv apache.apache /usr/local/apache20

edit /usr/local/apache2/conf/httpd.conf change..
User nobody
Group #-1

to
User apache
Group apache

and add this code to end of file.
<Location /subversion>
DAV svn
SVNPath /usr/local/subversion/repository/
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/subversion/repository/conf/svn-auth-file
Require valid-user
</Location>

create password with this command
/usr/local/apache20/bin/htpasswd -cmd /usr/local/subversion/repository/conf/svn-auth-file {user-name}

create a repository
[root@localhost ~]# mkdir -v /usr/local/subversion/repository
[root@localhost ~]# svnadmin create --fs-type fsfs /usr/local/subversion/repository
[root@localhost ~]#

Last to test I will try import some file to repos.
[root@localhost src]# touch source1
[root@localhost src]# touch source2
[root@localhost src]# ls
source1 source2
[root@localhost src]# svn -m "initial import to svn" import . http://127.0.0.1/subversion/
Authentication realm: Subversion repository
Password for 'root':
Authentication realm: Subversion repository
Username: swd
Password for 'swd':
svn: Can't create directory '/usr/local/subversion/repository/db/transactions/0-1.txn': Permission denied

uhh.. you need to make apache user can access all the files in the repository.
[root@localhost src]# chown -R apache.apache /usr/local/subversion/repository
[root@localhost src]# chmod g+s /usr/local/subversion/repository/db
[root@localhost src]# svn -m "initial import to svn" import . http://127.0.0.1/subversion/
Authentication realm: Subversion repository
Password for 'root':
Authentication realm: Subversion repository
Username: swd
Password for 'swd':
Adding source1
Adding source2

Committed revision 1.
[root@localhost src]#

That's all. You can browse repos. via url 'http://127.0.0.1/subversion/'.

Comments

Anonymous said…
I did everything and went to the url localhost/repository and I get a url not found :( Maybe I'm missing something?

Popular posts from this blog

Fixing sendmail take a long time to start

I notice that my database box[FC6+Oracle10.2] take along time to startup. Sendmail and sm-client very very slow to start[ about 5 minutes ]. There's something wrong in /etc/hosts file. 'newalises' command take long time to update and finish with error below. [root@ora10g ~]# newaliases WARNING: local host name (ora10g) is not qualified; see cf/README: WHO AM I? /etc/aliases: 76 aliases, longest 10 bytes, 765 bytes total [root@ora10g ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.1.55 ora10g [root@ora10g ~]# To fix this, custom hostname[ora10g] need to append to localhost line in /etc/hosts. [root@ora10g ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ora10g 192.168.1.55 ora10g [root@ora10g ~]# newaliases /etc/alia

Too many open files

Last week tomcat log file report many error about "Too many open files" when it has high traffic. Some in catalina_log say 2007-04-07 16:13:40 HttpProcessor[80][272] Starting background thread 2007-04-07 16:13:40 HttpConnector[80] accept: java.net.SocketException: Too many open files and here is from localhost_log 2007-04-07 16:13:40 StandardWrapperValve[myservlet]: Servlet.service() for servlet myservlet threw exception java.io.FileNotFoundException: /home/log/mylog_070407.log (Too many open files) This is because too many file descriptors're opened by tomcat. File descriptor can be limited in both system level and shell level. To check maximum number of fd in system type 'cat /proc/sys/fs/file-max'. In my case it is 65536(someone said it should set to 200000). Tomcat error when try to open socket number 272 so I think 65536 is ok for me for now. Anyway if u want to set it add 'fs.file-max = 200000' to /etc/sysctl.conf pnix@pnix-a7:~$ cat /proc/sys/fs/fil

using Class.getResource() load resource file in Eclipse

There are many ways to load resource file in java app. What sun recommended is using Class.getResource(" resource_name ") or Class.getResourceAsStream(" resource_name ") then you will get URL and InputStream respectively. If resource_name is specified without "/", it will be prepend with Class package. So resource file must be in same place[folder structure] as the Class. What I love to do is call getResource() with "/" and put resource file at the root of package. This way i can have separate resource folder. below is in Eclipse, 1. From Package explorer right click src folder->click import 2. In import dialog, Choose General->File System ->next 3. from directory:->Browse to your resource folder. 4. to folder:-> I add "resource" as a folder name under src folder. then click "Finish". In the code, load resource with this.getClass().getResource("/resource/buttons1.png") or this.getClass().getResourceAs