ちょっと要望があったのでインストールしてみた。
xmlrpc pluginをインストール
TracHacksからxmlrpcをダウンロード
# wget "http://trac-hacks.org/changeset/latest/xmlrpcplugin?old_path=/&filename=xmlrpcplugin&format=zip"
unzip で解凍する。
# unzip xmlrpcplugin.zip Archive: xmlrpcplugin.zip inflating: xmlrpcplugin/trunk/setup.py inflating: xmlrpcplugin/trunk/tracrpc/api.py inflating: xmlrpcplugin/trunk/tracrpc/web_ui.py inflating: xmlrpcplugin/trunk/tracrpc/util.py inflating: xmlrpcplugin/trunk/tracrpc/__init__.py inflating: xmlrpcplugin/trunk/tracrpc/ticket.py inflating: xmlrpcplugin/trunk/tracrpc/wiki.py inflating: xmlrpcplugin/trunk/tracrpc/search.py inflating: xmlrpcplugin/trunk/tracrpc/templates/xmlrpclist.html inflating: xmlrpcplugin/0.10/setup.py inflating: xmlrpcplugin/0.10/tracrpc/api.py inflating: xmlrpcplugin/0.10/tracrpc/web_ui.py inflating: xmlrpcplugin/0.10/tracrpc/util.py inflating: xmlrpcplugin/0.10/tracrpc/__init__.py inflating: xmlrpcplugin/0.10/tracrpc/ticket.py inflating: xmlrpcplugin/0.10/tracrpc/wiki.py inflating: xmlrpcplugin/0.10/tracrpc/search.py inflating: xmlrpcplugin/0.10/tracrpc/templates/xmlrpclist.cs inflating: xmlrpcplugin/sandbox/setup.py inflating: xmlrpcplugin/sandbox/tracrpc/api.py inflating: xmlrpcplugin/sandbox/tracrpc/web_ui.py inflating: xmlrpcplugin/sandbox/tracrpc/htdocs/css/rpc.css inflating: xmlrpcplugin/sandbox/tracrpc/htdocs/js/json.js inflating: xmlrpcplugin/sandbox/tracrpc/htdocs/js/jsonrpc.js inflating: xmlrpcplugin/sandbox/tracrpc/htdocs/js/jquery.js inflating: xmlrpcplugin/sandbox/tracrpc/json_rpc.py inflating: xmlrpcplugin/sandbox/tracrpc/util.py inflating: xmlrpcplugin/sandbox/tracrpc/__init__.py inflating: xmlrpcplugin/sandbox/tracrpc/ticket.py inflating: xmlrpcplugin/sandbox/tracrpc/wiki.py inflating: xmlrpcplugin/sandbox/tracrpc/xml_rpc.py inflating: xmlrpcplugin/sandbox/tracrpc/search.py inflating: xmlrpcplugin/sandbox/tracrpc/templates/xmlrpclist.cs #
解凍したディレクトリに移動して、setup.pyを実行
# cd xmlrpcplugin # python setup.py bdist_egg running bdist_egg running egg_info creating TracXMLRPC.egg-info writing TracXMLRPC.egg-info/PKG-INFO writing top-level names to TracXMLRPC.egg-info/top_level.txt writing dependency_links to TracXMLRPC.egg-info/dependency_links.txt writing entry points to TracXMLRPC.egg-info/entry_points.txt writing manifest file 'TracXMLRPC.egg-info/SOURCES.txt' reading manifest file 'TracXMLRPC.egg-info/SOURCES.txt' writing manifest file 'TracXMLRPC.egg-info/SOURCES.txt' installing library code to build/bdist.linux-i686/egg running install_lib running build_py creating build creating build/lib creating build/lib/tracrpc copying tracrpc/util.py -> build/lib/tracrpc copying tracrpc/wiki.py -> build/lib/tracrpc copying tracrpc/search.py -> build/lib/tracrpc copying tracrpc/web_ui.py -> build/lib/tracrpc copying tracrpc/api.py -> build/lib/tracrpc copying tracrpc/__init__.py -> build/lib/tracrpc copying tracrpc/ticket.py -> build/lib/tracrpc creating build/lib/tracrpc/templates copying tracrpc/templates/xmlrpclist.cs -> build/lib/tracrpc/templates creating build/bdist.linux-i686 creating build/bdist.linux-i686/egg creating build/bdist.linux-i686/egg/tracrpc copying build/lib/tracrpc/util.py -> build/bdist.linux-i686/egg/tracrpc copying build/lib/tracrpc/wiki.py -> build/bdist.linux-i686/egg/tracrpc copying build/lib/tracrpc/search.py -> build/bdist.linux-i686/egg/tracrpc copying build/lib/tracrpc/web_ui.py -> build/bdist.linux-i686/egg/tracrpc creating build/bdist.linux-i686/egg/tracrpc/templates copying build/lib/tracrpc/templates/xmlrpclist.cs -> build/bdist.linux-i686/egg/tracrpc/templates copying build/lib/tracrpc/api.py -> build/bdist.linux-i686/egg/tracrpc copying build/lib/tracrpc/__init__.py -> build/bdist.linux-i686/egg/tracrpc copying build/lib/tracrpc/ticket.py -> build/bdist.linux-i686/egg/tracrpc byte-compiling build/bdist.linux-i686/egg/tracrpc/util.py to util.pyc byte-compiling build/bdist.linux-i686/egg/tracrpc/wiki.py to wiki.pyc byte-compiling build/bdist.linux-i686/egg/tracrpc/search.py to search.pyc byte-compiling build/bdist.linux-i686/egg/tracrpc/web_ui.py to web_ui.pyc byte-compiling build/bdist.linux-i686/egg/tracrpc/api.py to api.pyc byte-compiling build/bdist.linux-i686/egg/tracrpc/__init__.py to __init__.pyc byte-compiling build/bdist.linux-i686/egg/tracrpc/ticket.py to ticket.pyc creating build/bdist.linux-i686/egg/EGG-INFO copying TracXMLRPC.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO copying TracXMLRPC.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracXMLRPC.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracXMLRPC.egg-info/entry_points.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracXMLRPC.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracXMLRPC.egg-info/zip-safe -> build/bdist.linux-i686/egg/EGG-INFO creating dist creating 'dist/TracXMLRPC-0.1-py2.4.egg' and adding 'build/bdist.linux-i686/egg' to it removing 'build/bdist.linux-i686/egg' (and everything under it) #
dist/に移動してpythonのライブラリディレクトリに生成された egg をコピー
# cd dist/ # cp TracXMLRPC-0.1-py2.4.egg /usr/lib/python2.4/site-packages
trac.ini 編集
[component] tracrpc.* = enabled
HttpAuthPlugin
AccountManagerPlugin を使っている場合、このプラグインもインストールしないと、xmlrpcプラグインは動かない。
HttpAuthPluginからダウンロード。
やり方は同じなので、ログだけ。
# wget http://trac-hacks.org/changeset/latest/httpauthplugin?old_path=/&filename=httpauthplugin&format=zip # mv httpauthplugin\?old_path\=%2F\&filename\=httpauthplugin\&format\=zip httpauthplugin.zip # unzip httpauthplugin.zip Archive: httpauthplugin.zip inflating: httpauthplugin/0.10/httpauth/__init__.py inflating: httpauthplugin/0.10/httpauth/filter.py inflating: httpauthplugin/0.10/setup.py [root@aldebaran trac_plugin]# cd httpauthplugin/0.10 # python setup.py bdist_egg running bdist_egg running egg_info creating TracHTTPAuth.egg-info writing requirements to TracHTTPAuth.egg-info/requires.txt writing TracHTTPAuth.egg-info/PKG-INFO writing top-level names to TracHTTPAuth.egg-info/top_level.txt writing dependency_links to TracHTTPAuth.egg-info/dependency_links.txt writing entry points to TracHTTPAuth.egg-info/entry_points.txt writing manifest file 'TracHTTPAuth.egg-info/SOURCES.txt' reading manifest file 'TracHTTPAuth.egg-info/SOURCES.txt' writing manifest file 'TracHTTPAuth.egg-info/SOURCES.txt' installing library code to build/bdist.linux-i686/egg running install_lib running build_py creating build creating build/lib creating build/lib/httpauth copying httpauth/filter.py -> build/lib/httpauth copying httpauth/__init__.py -> build/lib/httpauth creating build/bdist.linux-i686 creating build/bdist.linux-i686/egg creating build/bdist.linux-i686/egg/httpauth copying build/lib/httpauth/filter.py -> build/bdist.linux-i686/egg/httpauth copying build/lib/httpauth/__init__.py -> build/bdist.linux-i686/egg/httpauth byte-compiling build/bdist.linux-i686/egg/httpauth/filter.py to filter.pyc byte-compiling build/bdist.linux-i686/egg/httpauth/__init__.py to __init__.pyc creating build/bdist.linux-i686/egg/EGG-INFO copying TracHTTPAuth.egg-info/PKG-INFO -> build/bdist.linux-i686/egg/EGG-INFO copying TracHTTPAuth.egg-info/SOURCES.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracHTTPAuth.egg-info/dependency_links.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracHTTPAuth.egg-info/entry_points.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracHTTPAuth.egg-info/requires.txt -> build/bdist.linux-i686/egg/EGG-INFO copying TracHTTPAuth.egg-info/top_level.txt -> build/bdist.linux-i686/egg/EGG-INFO zip_safe flag not set; analyzing archive contents... creating dist creating 'dist/TracHTTPAuth-1.1-py2.4.egg' and adding 'build/bdist.linux-i686/egg' to it removing 'build/bdist.linux-i686/egg' (and everything under it) # cd dist/ # cp TracHTTPAuth-1.1-py2.4.egg /usr/lib/python2.4/site-packages/
trac.ini を編集
[component] httpauth.* = enabled [httpauth] paths = /xmlrpc, /login/xmlrpc
http://hogehoge/trac/project/xmlrpcにアクセスできて表示されればオッケー
"mod_python+Apache+python2.4 じゃ動かないかもしんない。"とかって記述があったけど普通に動いたぞ。まぁとりあえず様子見
Problems with mod_python, Apache, python 2.4
XmlRpcPlugin might not work with Apache and python 2.4 as explained in TracInstall. Use python 2.5 if you want to run Trac with mod_python.