1

サーバーに Trac をセットアップしようとしていますが、正常にインストールされ、バイトコードがコンパイルされ、tracd サーバーが実行されました。唯一の問題は、SVN リポジトリを読み取っていないことです。

私が受け取っているエラーは次のとおりです。

警告: リポジトリと同期できません (Subversion リポジトリ /data1/repos を開けません: SubversionException: ("Expected FS format '2'; found format '4'", 160043))。詳細については、Trac ログを参照してください。

(はい、私の単一のリポジトリは「repos」というフォルダーにあります-私はそのビットを設定しませんでした)

は次のtrac.iniようになります。

repository_dir = /data1/repos
repository_type = svn

私は実行しています: Trac 0.11.5、Python 2.4.3、Collabnet SVN 1.6.5、SWIG 1.3.29

4

4 に答える 4

3

Python svn ライブラリは更新されていますか? 古くなっているように聞こえます。

于 2009-11-16T05:12:04.717 に答える
3

Python バインディングが SVN バージョンと一致していることを確認する必要があります。

バインディングを取得するには、SVN ソースを使用してラッパーをコンパイルします。インストールでは、そのバインディングを構築するプロセスの概要が示されます。

最初にsvnソースをダウンロードする必要があります

UNIX での SVN 用の SWIG バインディングの構築

swigバインディングをビルドした後

ステップ 1: SWIG の適切なバージョン (現在 swig バージョン 1.3.24 - 1.3.31) をインストールします。

* Perhaps your distribution packages a suitable version - if it

それをインストールし、このセクションの最後の箇条書きにスキップします。

* Go to http://www.swig.org/, download the source tarball, and

開梱します。

* In the SWIG-1.3.xx directory, run ./configure.

    If you plan to build the Python bindings, and have a system
    with more than one version of Python installed, you may need
    to pass

         --with-python=/path/to/correct/python/binary

    to the configure script.  You need Python 2.4 or above.

    If you plan to build the Perl bindings, and have a system
    with more than one version of perl installed, you may need
    to pass

         --with-perl5=/path/to/correct/perl/binary

    to the configure script.  You need Perl 5.8.0 or above.

* Build and install.

    Run 'make && make install'

* To verify you have SWIG installed correctly, run "swig

-version" をコマンド ラインから実行します。SWIG は、バージョン 1.3.24 以降であることを報告する必要があります。

そしてpythonのこと

ステップ 3: 特定の言語バインディングをインストールする

  • パイソン

    1. Subversion ソース ツリーの上部から「make swig-py」を実行して、バインディングを構築します。

      (これにより、*.i ファイルに対して SWIG が呼び出され、.c ソース ファイルのコレクションが生成されます。次に、これらの .c ファイルがコンパイルされ、Python ライブラリにリンクされます。)

    2. Subversion ソース ツリーの上部から「make check-swig-py」を実行して、バインディングをテストします。

    3. Subversion ソース ツリーの一番上から (通常は root として) 'make install-swig-py' を実行します。これにより、新しい Python ライブラリが適切なシステムの場所にコピーされます。

      注: Python の site-packages ディレクトリにインストールするアクセス権がない場合は、Python モジュールをホーム ディレクトリにインストールできます。これは、'make install-swig-py swig_pydir=~' を実行することで実行できます。

      注: 別のプレフィックスにインストールする場合 (通常はパッケージをビルドする場合のみ)、ここでプレフィックスを指定できます。rpm をビルドするためにこれを行う例は、'make install-swig-py DESTDIR=$RPM_BUILD_ROOT/usr' のようになります。

    4. バインディングがインストールされたディレクトリが Python 検索パスにあることを確認してください。そのディレクトリは、インストール方法によって異なります。典型的な場所は /usr/local/lib/svn-python/ です。

      これを行うにはいくつかの方法があります。「sys.path」と「PYTHONPATH」については、Python のドキュメントを参照してください。これを行う良い方法は次のとおりです。 $ echo /usr/local/lib/svn-python \

      /usr/lib/python2.x/site-packages/subversion.pth

      Python がこれらの新しいライブラリをロードできるようにするには、オペレーティング システムのダイナミック リンカー構成を更新する必要がある場合もあります。一部のシステムでは、これは「ldconfig」を実行することによって行われます。

于 2009-11-16T05:13:44.113 に答える
2

Subversion の Python バインディングが古いバージョンの Subversion に対してコンパイルされている可能性がありますが、FS フォーマット 2 が1.0 より前であることを考えると、別の何かが間違っている可能性があります。Subversion クライアント ライブラリのバージョンは、次のように取得できます。

>>> import svn.client
>>> svn.client.svn_client_version().major
1
>>> svn.client.svn_client_version().minor
6
>>> svn.client.svn_client_version().patch
5
于 2009-11-16T05:15:10.570 に答える
0

彼らはあなたの質問にかなり徹底的に答えたように見えますが、参考までに: ログ ファイルをセットアップして、次の問題で読めるようにします。trac.ini のどこかに:

[logging]
log_file = trac.log
# log_format = <inherited>
log_level = DEBUG
log_type = file

その後、可能であれば trac を apache にデプロイしてみてください。mod_python または FastCGI を使用すると、trac のドキュメントによると、tracd を実行するよりもはるかに高速です。

于 2009-11-19T06:46:58.257 に答える