Subclipse错误“svn:SQLite编译为3.8.6,但以3.8.5运行”

时间:2014-09-18 04:51:30

标签: svn sqlite subclipse

我正在尝试Mac OS X Yosemite beta [编辑:完整版本中的同一问题],这似乎打破了我的Eclipse / Subversion。当我尝试执行任何svn操作时,我得到:

svn: Couldn't perform atomic initialization 
SQLite error 
svn: SQLite compiled for 3.8.6, but running with 3.8.5

我使用macports安装了subversion-javahlbindings + nobdb + universal,其中包括最新的SQLite3(3.8.6),所以我不知道3.8.5来自我的系统。

Svn在命令行上工作正常,但不是Eclipse。我查看了this similar problem并搜索了相关的E200029错误代码但没有成功。

因为它在命令行上工作,所以我认为我的Eclipse设置中存在某些东西,它以某种方式指向错误/旧的svn,但我无法找到任何可以更改任何内容的地方适用的设置。

有什么建议吗? (除了明显将我的操作系统切换回小牛队)

编辑:我已经让svnkit努力获得Eclipse svn功能,但仍想弄清楚subversion-javahl正在进行什么以供将来参考。

7 个答案:

答案 0 :(得分:6)

我已经解决了这个问题。

将版本替换为3.8.5.0,没关系。

1,# brew uninstall sqlite

2,# brew uninstall subversion

3,# brew edit sqlite

修改以下内容:

  3 class Sqlite < Formula
  4   homepage "http://sqlite.org/"
  5   url "https://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz"
  6   version "3.8.5.0"
  7   sha1 "7f667e10ccebc26ab2086b8a30cb0a600ca0acae"

 34   resource "docs" do
 35     url "https://www.sqlite.org/2014/sqlite-doc-3080500.zip"
 36     version "3.8.5.0"
 37     sha1 "c5655a4004095c50dc8403661e0ed02fd4191d57"
 38   end

喜欢vim,:wq保存更改并退出。

4,# brew install --universal --java subversion

5,# rm -f /Library/Java/Extensions/libsvnjavahl-1.dylib     删除符号链接文件;

6,# sudo mkdir -p /Library/Java/Extensions # sudo ln -s /usr/local/lib/libsvnjavahl-1.dylib /Library/Java/Extensions/libsvnjavahl-1.dylib

7,重启Eclipse,没关系。

答案 1 :(得分:3)

这个问题是由Yosemite似乎包含早于MacPorts提供的sqlite版本的事实引起的。通过降级MacPorts安装的版本,我找到了解决此问题的方法。 MacPorts没有3.8.5版本的端口,因此以下步骤将手动执行此操作。此外,下次执行port selfupdate时,您将清除这些更改,因此您可能需要重复这些步骤。

输入sudo port edit sqlite3

versionchecksums行修改为以下内容:

version             3.8.5
checksums           rmd160  b8da5ec594ac808da85469349c7506bd343946bf \
                sha256 98c33abe4106e508e73fda648b2657ac9e969fe24695f543dcde68cc71f3091b

输入sudo port install sqlite3

输入sudo port upgrade --force subversion-javahlbindings +no_bdb+universal

这将导致subversion重新编译sqlite3的3.8.5版本。

答案 2 :(得分:1)

查看是否可以从命令行运行此命令:

$ svn --version --verbose

这将显示所有已加载的库,这些库应该显示SQLite的来源。我还会看到MacPorts是否有任何更新或挂起的端口文件补丁。也许现在需要不同的构建/链接选项。如果找不到任何内容,我会在他们的跟踪器中提交一个错误。

我记得过去曾经看过这样的错误,但我一直在使用Homebrew,而且构建过程也不同。

我没有试过优胜美地。

答案 3 :(得分:1)

我在最新公共Yosemite + MacPorts所有更新,Eclipse Luna 4.4(STS 3.6.1),subclipse 1.10.5。

$ /usr/bin/sqlite3 --version
3.8.5 2014-08-15 22:37:57 c8ade949d4a2eb3bba4702a4a0e17b405e9b6ace

$ /opt/local/bin/sqlite3 --version
3.8.6 2014-08-15 11:46:33 9491ba7d738528f168657adb43a198238abde19e

我有一种感觉macports&#39; javahlbindings有一些对3.8.5版本的引用。没有花太多时间来检查。

我的解决方法是使用SVNKit(纯Java)SVNKit v1.8.5.10237。
Eclipse-&gt; Preference-&gt; Team-&gt; SVN-&gt; SVN Interface-&gt;从javahl更改为SVNKit
SVNKit是Subclipse的功能之一。 (SVNKit客户端适配器(不需要))

答案 4 :(得分:1)

我一直依赖Macports来获取Eclipse Luna的java HL,在我更新到Yosemite之后我也遇到了同样的问题。我使用颠覆而不是subclipse,但错误是一样的。我决定尝试一下Homebrew,令我惊讶的是SQLite错误消失了。

$ brew install --java subversion
$ brew options subversion # shows your options
$ brew install --universal --java subversion # Got Warning: subversion-1.8.10_1 already installed 
$ sudo mkdir /Library/Java/Extensions
$ cd /Library/Java/Extensions
$ sudo ln -sf /usr/local/lib/libsvnjavahl-1.dylib
$ sudo ln -sf /usr/local/lib/libsvnjavahl-1.jnilib
$ nano ~/.profile # add export PATH=/usr/local/bin:$PATH

答案 5 :(得分:1)

我在这看到同样的事情。新鲜的macports,重建sqlite3和颠覆*。一切都在命令行中运行,但是eclipse / subclipse失败了

SQLite compiled for 3.8.7, but running with 3.8.5

看起来很可疑svn链接两个版本。我尝试将--with-sqlite3 = $ {prefix}添加到Portfile中以进行subversion和subversion-javahlbindings,但这没有帮助。

$ svn --version  --verbose|grep sql
- /opt/local/lib/libsqlite3.0.dylib   (64-bitars Intel)
- /usr/lib/libsqlite3.dylib   (64-bitars Intel)

除了使用更不安全的本机绑定之外,还有任何想法如何解决这个问题?

答案 6 :(得分:1)

我遇到同样的问题,说:

svn: E200029: Couldn't perform atomic initialization
svn: E200030: SQLite compiled for 3.8.9, but running with 3.8.8.3

我的svn版本按照以下帖子从1.8降级到1.7.14:Install a Specific Version of a Tool on OS X With Homebrew

但是在降级svn之后,我得到了这个sqlite错误。我解决了这个问题:

$ brew update
...omit a lot of output...
$ brew upgrade sqlite
==> Upgrading 1 outdated package, with result:
sqlite 3.8.10.2
==> Upgrading sqlite
==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.8.10.2.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring sqlite-3.8.10.2.yosemite.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.

Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.

OS X provides an older sqlite3.

Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:

    LDFLAGS:  -L/usr/local/opt/sqlite/lib
    CPPFLAGS: -I/usr/local/opt/sqlite/include

==> Summary
  /usr/local/Cellar/sqlite/3.8.10.2: 9 files, 2.8M

在此之后,它运作得很好!