我已经通过“yum”安装了 sqlite 3.3.6,但我需要 3.6+。找不到它的 RPM,所以我决定从源代码安装。这很简单,但现在我安装了两个版本,这很成问题。
我想删除旧版本,但如果我运行“yum erasure sqlite”,这将删除依赖于 SQLite 的几个东西。有没有办法告诉包管理器使用我安装的版本,而不用费心为其创建 RPM?
另外,有人能解释一下我从源代码安装 3.7.0.1 之后这种令人困惑的交互吗(编辑:请参阅下面 gnaman 的回答):
> sqlite3 -version
3.3.6
> which sqlite3
/usr/local/bin/sqlite3
> /usr/local/bin/sqlite3 -version
3.7.0.1
答案1
我将使用 RPM 来删除所有sqlite 3.3.6
依赖项:
rpm -e –nodeps name-of-rpm-for-sqlite3.3.6
这应该会保留您的依赖项,但会删除您的 RPM 包。此外,请确保您/usr/local/bin/
的$PATH
.
答案2
没有找到它的 RPM,所以我决定从源代码安装。这很简单...
当然似乎很简单,但你接着提到你现在遇到的问题。
“...不用费心为其创建 RPM 吗?”
现在是学习如何创建 RPM 的时候了。除非您通过操作系统打包系统安装软件,否则您将会遇到无穷无尽的麻烦。
在这种情况下,它可能很简单,只需获取规范文件、增加版本号,然后决定补丁是否仍然适用于新版本。
答案3
Also, could someone explain this baffling interaction from after I installed 3.7.0.1 from source:
我也遇到了同样的问题。但退出并启动新的 Putty 会话窗口后,它工作正常。它返回最新版本。在我的情况下,它是 v3.7.3。
# sqlite3 -version
3.7.3
答案4
您需要 sqlite 3.6 做什么?如果您只是需要它作为命令行应用程序,那么像您所做的那样从源代码安装它就可以了,它会/usr/local/bin
按照您发现的方式安装。
您的PATH
变量将确定是否首先搜索/usr/local/bin
或/usr/bin
(基于该变量中的路径顺序)。如果这仅供您使用,您还可以将后者的 sqlite 安装在目录的子目录中HOME
,并将其添加到您的路径中。
最简单的解决方案就是打电话/usr/local/bin/sqlite3
如果您需要更广泛地使用 SQLite,请小心... 原因是解决依赖性问题/重新编译其他库或也使用 sqlite 库的应用程序。如果您不解决这些问题,您不知道它们是否会起作用。