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

问题描述 投票:0回答:9

我正在尝试 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 上不行。我查看了这个类似的问题并用谷歌搜索了相关的E200029错误代码但没有成功。

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

有什么建议吗? (除了明显将我的操作系统切换回 Mavericks 之外)

编辑:我已经让 svnkit 致力于获取 Eclipse svn 功能,但仍然想弄清楚 subversion-javahl 发生了什么以供将来参考。

svn sqlite subclipse
9个回答
8
投票

我已经解决了这个问题。

更换版本为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,就OK了。


3
投票

此问题是由于 Yosemite 似乎包含早于 MacPorts 提供的 sqlite 版本而引起的。我通过降级 MacPorts 安装的版本找到了解决此问题的方法。 MacPorts 没有 3.8.5 版本的端口,因此以下步骤将手动执行此操作。另外,下次执行

port selfupdate
时,您将清除这些更改,因此您可能必须重复这些步骤。

类型

sudo port edit sqlite3

version
checksums
行编辑为以下内容:

version             3.8.5
checksums           rmd160  b8da5ec594ac808da85469349c7506bd343946bf \
                sha256 98c33abe4106e508e73fda648b2657ac9e969fe24695f543dcde68cc71f3091b

类型

sudo port install sqlite3

类型

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

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


1
投票

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

$ svn --版本 --verbose

这将显示所有已加载的库,这些库应该向您显示 SQLite 来自哪里。我还会查看 MacPorts 是否对端口文件有任何更新或待处理的补丁。也许现在需要不同的构建/链接选项。如果你找不到任何东西,我会在他们的跟踪器中提交一个错误。

我记得过去见过这样的错误,但我已经使用 Homebrew 一段时间了,构建过程是不同的。

我还没有尝试过优胜美地。


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 的 javahlbindings 有一些对 3.8.5 版本的引用。没有花太多时间去检查。

我的解决方法是使用 SVNKit(纯 Java)SVNKit v1.8.5.10237。
Eclipse->首选项->团队->SVN->SVN Interface->从 javahl 更改为 SVNKit
SVNKit 是 Subclipse 的功能之一。 (SVNKit 客户端适配器(非必需))


1
投票

我一直依赖 Macports 来获取 Eclipse Luna 的 java HL,在更新到 Yosemite 后,我也遇到了同样的问题。我使用 subversive 而不是 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

1
投票

我在这里看到同样的事情。全新 macports、重建 sqlite3 和 subversion*。一切都可以在命令行中运行,但 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)

除了使用稍微不安全的本机绑定之外,还有如何解决此问题的任何想法吗?


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

之后就可以正常使用了!


0
投票

我通过port重新安装了subversion并修复了类似的问题

sudo brew uninstall subversion
sudo port install subversion

0
投票

我知道这篇文章很旧,但我遇到了几乎相同的错误,并且我无法使其与 stackoverflow 上发布的任何说明一起工作,但最终让它工作,并认为我可以分享它为我做了什么。对我来说唯一的解决方案是:

brew reinstall --build-from-source subversion

我无法真正更改brew中的sqlite版本,因为我有其他包使用它,而且无论如何homebrew中的svn是预编译的,所以无论我做什么,它总是会被设置为这个错误的版本。

我想这可以通过在路径中优先设置brew sqlite来解决,但我担心这会破坏使用该版本的其他应用程序......

我的确切错误是:

svn: E200029: Couldn't perform atomic initialization
svn: E200030: SQLite compiled for 3.43.2, but running with 3.39.5
© www.soinside.com 2019 - 2024. All rights reserved.