Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (4,208)  
HandBrake Japanese Language Version  (3,353)  
CrystalDiskInfo  (1,743)  
CotEditor  (1,120)  
CrystalDiskMark  (866)  
Boookends  (788)  
SMPlayer  (642)  
えこでこツール  (599)  
Tera Term  (595)  
10  FFFTP  (579)  
11  Cabos  (530)  
12  BathyScaphe  (494)  
13  ffdshow  (481)  
14  MergeDoc  (464)  
15  ギコナビ  (438)  
More >>

最近ブックマークされた記事

SqlSyncによるデータベースの同期化

2008年05月20日 10:49 Ben-Martin(2008年5月08日(木)) 1 2 3
  SqlSync では2つのデータベースを比較して、どのタプルが追加され、除かれ、変更されたかを知ることができる。また、一方のデータベースを他方のクローンにし、必要な変更を加えながらその状態を保つことができる。同期化にSqlSyncを用いることには、異種エンジン間(たとえば、MySQLからPostgreSQLへ)の同期化ができるというメリットがある。

 Ubuntu、Fedora、openSUSEの標準リポジトリにはSqlSyncパッケージがない。そこで、本稿ではバージョン1.0.0-rc1を使い、64ビットのFedora 8マシンでソースからビルドすることにした。プロジェクトのfreshmeatページにもホームページにも書かれていないが、SqlSyncはデータベースへのアクセスにODBCを使う。したがって、unixODBC開発パッケージがインストールされていないと、ビルドは成功しない。

 SqlSyncはautotoolsによる自動ビルドを行わず、Makefileを使うので、ビルドに失敗したときは、Makefile.logを見れば失敗理由がわかる。筆者は、-fPIC 位置独立コードオプションなしで共有ライブラリをmakeしようとして、ビルドに失敗したことがある。PICコードの特長はメモリ中のどこにでもロードできることであり、共有ライブラリのコードのコンパイルでこれを使えば、2つのライブラリが同じアドレスを使いたいと主張するとき、一方を別のアドレスに移動できて便利である。また、静的リンクバージョンのビルドでも、やはりリンクに関連して別の問題が発生した。これの解決には、Makefile.defを次のように変更して、makeを実行し、SqlSyncをビルドした。これで、静的にリンクされたsrc/sqlsync_staticツールが得られる。

$ vi Makefile.def
-  ODBC_STATIC_LIB=`odbc_config --static-libs` -L`odbc_config --lib-prefix` -liconv
+  ODBC_STATIC_LIB=`odbc_config --static-libs` -L`odbc_config --lib-prefix` -ldl
$ make  WITH_SHARED=NO WITH_STATIC=YES clean  all
...
最終更新:2008年07月20日 17:07