Windows XP'nin kapalı kutu sistemi ve Trac ve bileşenlerini kurarken kullandığım üçüncü parti yazılım (
BitNami) nedeniyle, karşılaştığım sorunlar ile uğraşmak ve bu sorunları çözmek gerçekten zorlaştı.
İlk başta resmin tamamımı görmemi sağlayan,
BitNami'yi
Windows XP'den kaldırdım. Windows işletim sistemi kaynak doküman ve bendeki Windows'a olan güven eksikliği nedeniyle çalışmalarıma
Pardus üzerinde devam edeceğim. Artık daha fazla "nasıl" (how-to) belgesini kaynak olarak kullanabiliyorum.
Bilgisayarımda kurulu Pardus'un 28 Ağustos 2011 itibarıyla tüm güncellemeleri tamamlanmış durumda.
İşletim Sistemi sürüm bilgisi şöyle;
Linux pardus2011 2.6.37.6 #1 SMP Wed Mar 30 16:31:56 EEST 2011 i686 i686 i386 GNU/Linux
Pyhton 2.7.1 kurulu;
Python 2.7.1 (r271:86832, Apr 28 2011, 14:34:05)
[GCC 4.5.2] on linux2
Kurulu
setuptools bilgisi ise şöyle;
Name : python-setuptools, version: 0.6_11, release: 10
Summary : Python setuptools
SQLite database konusunda ise Phytho 2.7.1 kurulu olduğu için ek bir kurulum yapmadım. "If you're using Python 2.5 or 2.6, you already have everything you need."
http://trac.edgewall.org/wiki/TracInstall#ForSQLite
İleride version kontrolü de yapmak istediğim için
Subversion'ın da kurulu olmasını istiyorum. Sistemime kurulu subversion bilgileri ise şu şekilde;
subversion, version: 1.6.17, release: 68
Tek eksiğim
Genshi, şablonlama sistemi.
"Genshi is a Python library that provides an integrated set of components for parsing, generating, and processing HTML, XML or other textual content for output generation on the web."
http://genshi.edgewall.org/
Genshi'nin kaynak kodunu tar.gz olarak indirdim.
http://genshi.edgewall.org/wiki/Download#SourceTarballs
Sıkıştırılmış dosyayı açtıntan sonra, kullanıcı yetkilerimi "
root"a çevirdim. İnternet sitesinde açıkladığı şekilde yazılımı kurdum.
http://genshi.edgewall.org/wiki/Documentation/0.5.x/install.html#id4
Aslında tek yaptığım komut satırına,
$ python setup.py install
yazmak oldu. Kurulum sırasında bir hata almadım.
Ardından Trac'in kaynak kodu dosyasını tar.gz olarak indirdim.
http://trac.edgewall.org/wiki/TracDownload
Sıkıştırılmış tar.gz dosyasını açtıktan sonra, (bu arada hala root yetkilerine sahibim)
$ python ./setup.py install
komutu ile kurulumu gerçekleştirdim. Kurulum sırasında bir hata almadım.
Kurulum tamamlandıktan sonra sıra
Trac Environment'ın oluşturulmasına geldi.
$ trac-admin /ABCKonutlari initenv
komutu ile gerekli proje klasör ve dokümanları
/ABCKonutlari oluşturuldu.
(Klasörler kök dizinde oluştu.(
/) Aslında projenin kurululacağı "Path"i daha anlamlı bir şekilde verebilirdim. Aklımda hiç bir dizin planlaması olmadığı için şimdilik bu şekilde kalması benim için problem değil. İlerleyen günlerde Trac'e ulaşımın
Apache server üzerinden sağlanması sırasında bazı zorluklar ile karşılaşırsam o zaman bir plan yaparım.)
Trac'e standalone bir server olarak ulaşılmasını sağlayan
http://trac.edgewall.org/wiki/TracInstall#RunningtheStandaloneServer
$ sudo tracd --port 8000 /ABCKonutlari
komutu ile deneme projem "
ABC Konutlarına"
http://127.0.0.1:8000/ABCKonutlari
adresinden ulaşabildim.
"tracd" komutunu "sudo" ile yazmamın sebebi, konsolda komutu çalıştıran kullanıcının /ABCKonutlari klasörüne ve database dosyasına okuma-yazma hakkına sahip olması gerekliliği. Farklı bir kullanıcı ile komutu çalıştırdığınızda internet arayüzünde size bir hata mesajı veriyor.
Traceback (most recent call last):
File "build/bdist.linux-i686/egg/trac/web/api.py", line 440, in send_error
data, 'text/html')
File "build/bdist.linux-i686/egg/trac/web/chrome.py", line 827, in render_template
message = req.session.pop('chrome.%s.%d' % (type_, i))
File "build/bdist.linux-i686/egg/trac/web/api.py", line 216, in __getattr__
value = self.callbacks[name](self)
File "build/bdist.linux-i686/egg/trac/web/main.py", line 300, in _get_session
return Session(self.env, req)
File "build/bdist.linux-i686/egg/trac/web/session.py", line 198, in __init__
self.get_session(sid)
File "build/bdist.linux-i686/egg/trac/web/session.py", line 219, in get_session
super(Session, self).get_session(sid, authenticated)
File "build/bdist.linux-i686/egg/trac/web/session.py", line 61, in get_session
db = self.env.get_db_cnx()
File "build/bdist.linux-i686/egg/trac/env.py", line 328, in get_db_cnx
return get_read_db(self)
File "build/bdist.linux-i686/egg/trac/db/api.py", line 90, in get_read_db
return _transaction_local.db or DatabaseManager(env).get_connection()
File "build/bdist.linux-i686/egg/trac/db/api.py", line 152, in get_connection
return self._cnx_pool.get_cnx(self.timeout or None)
File "build/bdist.linux-i686/egg/trac/db/pool.py", line 226, in get_cnx
return _backend.get_cnx(self._connector, self._kwargs, timeout)
File "build/bdist.linux-i686/egg/trac/db/pool.py", line 146, in get_cnx
raise TimeoutError(errmsg)
TimeoutError: Unable to get database connection within 0 seconds.
(TracError(u'The user erdem requires read _and_ write permissions to the database
file /ABCKonutlari/db/trac.db and the directory it is located in.',))
Bir sonraki konumuz Trac için kullanıcı tanımlama olacak. Kullanıcıların nasıl tanımlandığına standalone bir server için değil, Apache Server ile yayımlanan bir Trac için bakacağız.
Apache "nasıl" dokümanlarını okumaya devam.
http://httpd.apache.org/docs/2.2/en/howto/
Sağlıcakla kalın,