Mac OS Catalina (10.15)下编译Redis Desktop Manager(RDM)
前言
Redis Desktop Manager(RDM) 是个简单易用的GUI Redis 管理工具,支持跨平台。现在Redis Desktop Manager官网已经不在提供编译好的下载来使用,改为付费订阅的模式。
在App Store 上是近15美元,且必须是海外的账户登录App Store才可以搜索得到。
不过Redis Desktop Manager是开源的,可以通过源码自己构建,而在构建过程中遇到不少阻难。网上相关的资料也比较少。走了不少弯路才编译成功,于是记录一下,避免日后又遇到同样的问题。
一、基本环境说明
- macOS Catalina 10.15
- Xcode 11
- Qt 5.12.2
- Qt Creator 4.9
- Python 3.7.4
二、编译Redis Desktop Manager
2.1 安装编译基础软件
安装满足Redis Desktop Manager的编译基础工具,尤其是python的版本,必须是3.x
- 根据具体的macOS系统,安装最新的Xcode
- 安装Command_Line_Tools_for_Xcode_11
- 安装Qt,这个可以在官网下载,安装的过程需要勾选Qt Charts这个模块
- 系统默认的Python升级到3.X,这个苹果官方也建议升级,可参考The Right Way to Set Up Python on Your Mac 这篇文章
2.2 下载Redis Desktop Manager源码和相关依赖
2.2.1 下载RDM源码
终端输入命令:
git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 2019 rdm && cd ./rdm
等待下载完后,进入rdm文件夹,把Info.plist.sample复制更改为Info.plist
2.2.2 把rdm.pro文件里面debug模式注释
以win32为例,在debug前面加个#符号,其他的类似
2.2.3 安装Python相关的依赖项
RDM的编译需要依赖openssl
,cmake
and python3
,而python前面已经安装过了。
终端输入命令 1:
brew install openssl cmake
brew的相关操作,可参考这篇文章: macOS 使用 Homebrew 的经验分享,也可自行谷歌和百度(鉴于国内的网络环境,尤其注意替换brew安装源部分)
如果python之前没有安装,则终端输入brew install openssl cmake python3
安装python3可能会遇到link问题,这个自行谷歌百度一下
终端输入命令 2:
pip3 install -t ../bin/osx/release -r py/requirements.txt
注意,需要把“py/requirements.txt”换成你自己requirements.txt的实际路径
2.2.4 一些坑
RDM最初编译不通过时,在网上搜索,不少文章上说下载完源码还需要输入这个命令编译一下依赖:
./configure
一开始我以为我的RDM编译有问题是这个命令没执行到位引起的。当然后来这个问题,我自己也没有解决。可能新版本的RDM自己都移除了这个构建依赖了。我后面编译通过的方案是没有这一步的。
2.3 QT编译RDM的源码
2.3.1 Qt Creator 导入RDM的工程并构建
在RDM的src文件夹下打开之前注释掉debug模式的rdm.pro文件
然后右键点击重新构建项目:
如果你没有遇到下图的缺少Python.h
头文件的错误,等待不到1分钟左右就会编译完成了。
如果顺利编译的话,结果存放在bin文件下:
2.3.2 解决缺少Python.h
头文件问题
根据QT的告警信息,如果你往macOS编译缺少头文件如何解决的方向搜索,估计得处理一两天都不定能解决,这源于macOS自身的一些安全设置或系统变更导致的,而且不同的系统,别人的解决方案可能还不定通用。
那有没有通用的模式可以参考呢。有一个行之有效但相对“笨”的方式:看项目的源码,尤其是项目构建部分的源码。
首先查看的就是rdm.pro文件,发现这个项目自身也会导入不少头文件:
那么把缺失的Python.h
头文件也可以依葫芦画瓢把它添加进去,放在最后一行。下面是我的路径,可通过在电脑搜索Python.h
找到对应的路径。
/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/Headers/*.h \
然后保存rdm.pro文件,rdm项目重新构建就好。缺少其他头文件也可以参考这种方式先处理一下。一旦你一头扎进去修复macOS 缺少 /usr/include
文件夹,可能会像我一样花费很多时间。
2.3.3 RDM的证件照
Redis Desktop Manager(RDM),总体界面还是挺简洁的,钱多的话,我也想捐款14.99刀。
三 Redis Desktop Manager的使用
参考官方的操作说明
http://docs.redisdesktop.com/en/latest/quick-start/
四 遇到的问题
- 在断开连接,再重连时,偶尔会闪退。需要退出客户端才行,原因暂未知
参考
- Redis Desktop Manager 官方安装说明
- Mac OS X下编译Redis Desktop Manager(RDM)
- macOS软件编译时找不到头文件解决方法[更新10.15]
Mac OS Catalina (10.15)下编译Redis Desktop Manager(RDM)相关推荐
- Mac OS X 10.8.X编译Android4.2.X源码不生成emulator的问题
编译时的提示: Checking build tools versions- build/core/main.mk:165: ************************************* ...
- redis linux 运行依赖,在Ubuntu系统下安装Redis Desktop Manager的方法
以下为你介绍在Ubuntu16.04系统下安装Redis可视化工具Redis Desktop Manager.不管是哪个Redis Desktop Manager版本,都可以采用下面的安装方式进行. ...
- 一、Redis入门之——介绍、安装,图形化界面(GUI)工具Redis Desktop Manager (RDM)安装
一.Redis简介 引用官方文档的介绍: Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: ...
- mac os x 10.7下配置svn服务器
1. mkdir /svn_serv_root 这个目录不是版本库,只是用来装版本库的目录. 2.svnadmin create /svn_serv_root/projectTest 这就创建了一个版 ...
- 解决Mac OS 山猫10.8下Xcode无法更新以及速度慢的问题
前天升级完了山猫,结果发现xcode 4.3已经不能使用了.到App store里更新,但是不是毫无反应就是没有下载速度.最后还跳出个更新失败. 终极解决办法: 1.终端下先删除applestore产 ...
- windows下修改黑苹果config_黑苹果家用PC安装苹果Mac OS操作系统经验(下)工具和资源...
黑苹果自从诞生以来,无数的爱好者和工程师无偿对其进行开发:使得今天有了简单易用的引导安装程序和制作工具,摒弃了曾经的变色龙+硬盘助手,以及EasyBCD.HFS+ for Windows等上古的安装工 ...
- 「Do.026」看完这篇再决定要不要升级Mac OS Catalina
首发公众号:Android程序员日记 作者:贤榆的榆 如果喜欢,请关注.赞赏.点在看 阅读时间:1362字 4分钟 Mac Os Catalina 也就是10.15版本于本月初上旬在AppStore上 ...
- Windows下VMware Workstations Pro15.5.0安装dmg镜像(macOS Catalina 10.15虚拟机)
喜闻乐见.大快人心.普天同庆.奔走相告\color{red}喜闻乐见.大快人心.普天同庆.奔走相告喜闻乐见.大快人心.普天同庆.奔走相告 喜闻乐见.大快人心.普天同庆.奔走相告\color{red}喜 ...
- iphone php环境,苹果(Mac OS X 10.5.6)下搭建php开发环境
很多做设计的朋友用的是苹果mac系统,但做开发往往因环境而头疼,甚至有用虚拟机的,太痛苦了.今天让我们一起来学习下苹果系统下配置工作环境,首先得让Mac OS支持PHP.不管你是采用集成的开发环境,比 ...
最新文章
- 漫画:什么是公有云、私有云和混合云?
- python画柱状图代码-Python绘制堆叠柱状图的实例
- vue3 封装文件上传组件
- 光纤测试仪为什么使用单芯法为光纤损耗测量
- 【模块化开发】之 Webpack、Rollup、Parcel
- gitlab windows安装_【Thrift】Windows编译Thrift源码及其依赖库
- python中valueerror是什_Python:ValueError和Exception的区别?
- 在 IIS 中部署 SPA 应用,多么痛的领悟!
- cacti 安装与配置
- php !$rs-gt;bof and !$rs-gt;eof,关于rs.bof rs.eof的一些解释,请大家帮我完善一下,谢谢...
- 目前全球最主流的四种Android架构简介与理解
- Linux计划任务以及进程检测与控制
- 基于算力驱动、数据与功能协同的分布式动态(协同)渲染/功能运行时
- Spyder中出现IndentationError:unindent does not match any outer indentation level错误
- Python里面这些点,据说80%的新手都会一脸懵逼
- 如何用深度学习来写歌词(神经网络实现)
- centos大小写混乱问题
- wp-bugku-秋名山老司机
- pywifi连接中文wifi名称(乱码)连接不上问题解决方案
- 免费领取三个月苹果ARCADE订阅教程
热门文章
- C语言“水仙花数”是一个正三位数,他的个位十位百位的立方和等于他本身
- oracle静态游标与动态游标,Oracle 静态 动态游标的使用
- SpringBoot+Vue+ElementUI实现后台管理系统
- python自动化测试学习笔记合集三
- 推荐一款网购神器高佣联盟APP,适用个人自用兼职,自媒体等
- PCSC那事儿(二)
- Struts2框架漏洞总结与复现(上) 含Struts2检测工具
- myeclipse-添加jar包
- 云和恩墨大讲堂电子期刊第四期
- java中文处理学习:Hello Unicode