美文网首页
Mac版Redis Desktop Manager编译

Mac版Redis Desktop Manager编译

作者: 惘客 | 来源:发表于2018-12-14 21:40 被阅读0次

    Redis Desktop Manager编译

    本文主要讲述rdm在mac下的编译过程。

     一、下载源码

    git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 0.9 rdm && cd ./rdm

    这里直接按照官方的说明下载源码并切换到0.9分支。

    二、安装XCode

    由于较低版本的XCode带的编译工具xcodebuild可能无法编译rdm的依赖项,因此建议升级XCode,本人编译时使用的XCode为10.1。 XCode的版本也会被系统版本限制无法升级,如遇到此情况建议先升级系统。本人编译时将系统升级到macOS Mojave 10.14.2。

    三、安装Homebrew

    由于编译rdm需要用到其他工具或三方库,因此系统最好安装有包管理器方便下载或更新其他软件包。

     四、拷贝plist文件

    cd ./src && cp ./resources/Info.plist.sample ./resources/Info.plist

    五、安装依赖软件包

    brew install openssl cmake

    六、编译依赖项

    该依赖项即包含第三方的软件包也包含源码中的部分,在编译rdm之前需要提前安装或使用XCode的工具编译,按照官方文档只需执行以下配置好的代码即可:

    ./configure

    七、编译rdm

    需要先安装Qt5.9及Qt Creator,安装完成后使用QtCreator打开src下面的rdm.pro,直接编译。

    八、解决编译问题(重点)

    以上步骤完全基于官方文档的说明,但是很多人按照以上步骤仍然无法完成编译工作,主要因为编译过程中出现了较多官方文档中为说明的问题,以下给出可能出现的问题及解决办法

    1. xcodebuild 'quiet' 选项找不到

    该问题由于XCode版本较低导致,升级XCode即可。

    2. breakpad.xib无法编译

    找到该文件并使用XCode打开,在XCode右侧有个Build for选项,选择高版本的macOS。

    3. 找不到string.h这个头文件

    遇到该问题尝试使用以下解决方式,任意一种可能都会解决该问题。

    * 安装或重装XCode command line

    * 清空Qt Creator的构建目录,重新编译

    * 取消shadow build

    4. 无法生成app boudle

    该问题不影响编译,但会影响到打包,而且编译出来的rdm实际上是debug版本。正常编译一个应用程序一般都会选择release版本,因此当用Qt Creator编译rdm时,用户可能通过直接点击左下角的按钮来编译release。然而实际上rdm.pro的配置还是debug版本,因此,此时用户编译出来的还是debug版本的rdm,该rdm没有app boudle,只是生成了一个rdm的可执行程序。为了解决该问题并编译真正release版本的rdm,需要手动修改rdm.pro文件:

    CONFIG -= debug

    CONFIG += release

    然而做了该改动之后rdm会编译报crashreporter相关的错误, 个人认为是rdm的release版本的配置出了问题(官方挖的坑?毕竟官方提供的需要订阅费)。对于该错误可直接修改rdm.pro中mac相关的配置,找到并注释掉以下代码即可:

    CRASHREPORTER_APP.files = $$DESTDIR/crashreporter

    CRASHREPORTER_APP.path = Contents/MacOS

    至此,rdm可以完成编译运行了。

    九、编译带ssh功能的rdm

    官方0.9.9版本的rdm不带ssh功能,若需要使用ssh可手动切换到0.9.8. 注意保持以上修改不变。

    1. 安装libssh2

    brew install libssh2

    2. 编译问题

    2.1 无法找到-lssh2

    libssh2默认安装路径为/usr/local/lib,而对于有些系统,该路径不在系统库文件的默认搜索路径中,为了找到该库文件,可以修改系统配置文件来将其添加到默认搜索路径中,这里为了简单直接在rdm.pro中添加一下代码:

    LIBS += -L/usr/local/lib

    2.2 编译后界面黑屏

    估计也是官方挖的坑,这里之所以黑屏是Qt Quick scenegraph backend的配置导致到,在0.9.9版本中统一使用了QSGRendererInterface::Software的方式渲染界面,然后在0.9.8版本却改为了只在LINUX和WINDOWS上使用该方式,为了解决该问题只需要找到源码中Application::initQml函数并注释掉相关的预处理命令:

    #if defined(Q_OS_WIN) || defined(Q_OS_LINUX) // 注释掉

    QQuickWindow::setSceneGraphBackend(QSGRendererInterface::Software);

    #endif // 注释掉

    至此带ssh功能的0.9.8版本编译完成,并可正常运行。根据本人的运行结果显示windows和mac os的0.9.9版本的多语言切换都存在问题,只能显示英文,而0.9.8版本却是正常的,因此建议使用0.9.8版本,而且还带了ssh功能。

    3. 其他问题

    由于0.9.8版本不是最新版,因此程序每次运行都会弹出更新和QuickStart弹框,为了解决该问题,直接找到对应文件(app.qml中)注释掉以下代码:

    Component.onCompleted: {

        if (connectionsManager.size() == 0)

            quickStartDialog.open()

    }

    十、参考文档

    RDM官方文档

    相关文章

      网友评论

          本文标题:Mac版Redis Desktop Manager编译

          本文链接:https://www.haomeiwen.com/subject/biknhqtx.html