Linux平台下Navicat 16数据库软件的安装与激活
wxin55 2024-10-27 15:53 10 浏览 0 评论
数据库图形化软件就我来说,体验并使用过Navicat、DBeaver、SQLyog、DataGrip、IDEA自带(其实就是DataGrip)、RedisDesktopManager、AnotherRDM、国产TreeDMS等一些其他数据库图形化软件;总的来说Navicat体验比较优秀,满足绝大多数的开发需求,感觉就很棒!很Nice!下面是Linux平台下的最新的数据库软件Navicat 16的安装与激活教程分享;另外,下述内容只做个人学习研究之用,不得用于其他用途!若资金允许,请购买正版Navicat支持(惯例0_0)!
测试环境:
Deepin 20.7.1
Navicat 16.1.3
1.下载Navicat 16
Navicat 16官网下载即可;进入Navicat官网后,点击旗舰产品“Navicat Premium 16”选择Linux平台下载。
Navicat 16安装包下载后是appImage格式,安装包名称是“navicat16-premium-cs.AppImage”;为了方便,建议安装包保存到Linux桌面下,保存路径:~/Desktop,否则后续执行命令需要适当修改。
2.下载激活工具源码
利用git工具下载navicat-keygen源码,命令如下:
$ git clone -b linux --single-branch https://notabug.org/doublesine/navicat-keygen.git
下载后的源码目录如下:
3.编译环境准备
安装好navicat-keygen工具的编译环境:
1.安装CMake
$ sudo apt-get install cmake
2.安装fmt、OpenSSL 和rapidjson
$ sudo apt-get install libfmt-dev libssl-dev rapidjson-dev
4.编译激活工具
1.切换到navicat-keygen源码目录
$ cd navicat-keygen
2.构建工具
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build . -- -j4
构建成功如下图:
构建成功后,在navicat-keygen源码目录的build目录下会有2个新生成的执行文件,分别是navicat-keygen和navicat-patcher,如下图:
5.提取安装包中的文件
提取Navciat 16安装包中的文件到桌面的目录中,命令如下:
$ mkdir ~/Desktop/navicat16-premium-cs
$ sudo mount -o loop ~/Desktop/navicat16-premium-cs.AppImage ~/Desktop/navicat16-premium-cs
$ cp -r ~/Desktop/navicat16-premium-cs ~/Desktop/navicat16-premium-cs-patched
$ sudo umount ~/Desktop/navicat16-premium-cs
$ rm -rf ~/Desktop/navicat16-premium-cs
执行上述命令后,桌面的navicat16-premium-cs-patched目录中的内容如下图:
6.patch操作
使用navicat-patcher 替换公钥;
首先切换目录:
$ cd navicat-keygen/build/
然后执行patch命令:
$ ./navicat-patcher ~/Desktop/navicat16-premium-cs-patched
patch成功后如下图:
navicat-patcher同级目录下,会有新生成的“RegPrivateKey.pem”密钥文件。
7.重新打包安装包
重新打包解压的Navicat 16为appimage格式,命令如下:
# 下载打包工具appimagetool到桌面
$ wget -P ~/Desktop 'https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage'
# 分配可执行权限
$ chmod +x ~/Desktop/appimagetool-x86_64.AppImage
# 重新打包
$ ~/Desktop/appimagetool-x86_64.AppImage ~/Desktop/navicat16-premium-cs-patched ~/Desktop/navicat16-premium-cs-patched.AppImage
打包成功后,在桌面会看到新生成的“navicat16-premium-cs-patched.AppImage”安装包。
8.激活Navicat
1.计算机断开网络连接
2.运行新生成的Navciat 16安装包
命令:
$ chmod +x ~/Desktop/navicat16-premium-cs-patched.AppImage
$ ~/Desktop/navicat16-premium-cs-patched.AppImage
3.获取激活码
利用navicat-keygen工具获取激活码,需要使用patch操作生成的“RegPrivateKey.pem”密钥文件,参考命令如下:
$ cd navicat-keygen/build/
$ ./navicat-keygen --text ./RegPrivateKey.pem
执行后操作参考如下:
***************************************************
* navicat-keygen by @DoubleLabyrinth *
* version: 16.0.7.0-3 *
***************************************************
[*] Select Navicat product:
0. DataModeler
1. Premium
...
(Input index)> 1 #选择旗舰版输入1
[*] Select product language:
0. English
1. Simplified Chinese
...
(Input index)> 1 #选择简体中文
[*] Input major version number:
(range: 1 ~ 16, default: 16)> 16 #版本号输入16
[*] Serial number:
XXX-XXXX-XXXX-XXXX #得到许可证密钥,填入Navicat激活框
[*] Your name: root #此2处名称随便填写
[*] Your organization: root
[*] Input request code in Base64: (Double press ENTER to end) #控制台等待粘贴请求码,注意此时不要关闭控制台窗口
输入许可密钥:
后续操作:点击“激活” --> "手动激活" --> "复制请求码,粘贴到控制台窗口,按回车键2下,得到激活码" --> “粘贴到Navicat激活框激活”。
9.创建桌面图标
因为appimage格式没有软件图标,具有强迫症的我忍受不了这么丑的软件显示,所以创建一个桌面软件图标解决。
命令:
sudo vim /usr/share/applications/navicat16.desktop
navicat16.desktop文件内容需要根据自己实际情况修改,这里参考如下:
[Desktop Entry]
Type=Application
Name=Navicat premium 16
Exec=/home/yyj/Software/navicat/navicat16-premium-cs-patched.AppImage
Icon=/home/yyj/Data/Desktop_Icons/navicat16.png
Terminal=false
Comment=Navicat premium 16
Categories=Developer;
X-Deepin-CreatedBy=com.deepin.dde.daemon.Launcher
X-Deepin-AppID=navicat
注:在桌面的~/Desktop/navicat16-premium-cs-patched目录里面有Navicat 16的桌面Icon图标。
10.Navicat使用
11.其他平台使用Navicat
mac平台、Windows平台请访问git仓库地址(细看步骤2中的git仓库地址),下载指定分支的源码自行构建使用。
最后感谢Deltafox79、dragonflylee、zenuo大神开源的工具源码!
相关推荐
- Java中List 和 Map、Set 的区别(list和set和map)
-
hello,大家好,我是霖仔java集合的大家了解,我再给大家说一下他们的区别,希望能够帮助到大家结构特点:List和Set是存储单列数据的集合,Map是存储键和值这样的双列数据的集合;Lis...
- Java 集合框架全面解析:选对数据结构,提升开发效率
-
上一章我们详细介绍了各种常用的数据结构情况(参考:数据结构复杂度全览:如何选择最优结构?),本文结合关键数据结构,从列表(List)、队列(Queue)、集合(Set)、映射(Map)四个维度,深入解...
- LinkedList竟然比ArrayList慢了1000多倍?(动图+性能评测)
-
数组和链表是程序中常用的两种数据结构,也是面试中常考的面试题之一。然而对于很多人来说,只是模糊的记得二者的区别,可能还记得不一定对,并且每次到了面试的时候,都得把这些的概念拿出来背一遍才行,未免有些麻...
- LinkedList 底层源码深度解析(linkedlist底层数据结构)
-
目录1.引言2.LinkedList概述2.1类继承体系图2.2各个接口作用3.与ArrayList的对比4.底层数据结构5.核心方法源码解析5.1add()方法5.2a...
- List的用法和实例详解——Java进阶知识讲义系列(四)
-
序欢迎来到全网最完整的Java进阶知识系列教程!!!每天定时更新!!!本期是Java进阶知识系列的第四讲,将分享Java常用的数据容器——集合类。集合类也分很多类型,比如:List、Set、Map、Q...
- Rust高效集合操作(rust基本操作)
-
集合的分类Rust的集合类型主要分布在标准库的std::collections模块中,同时也包括语言内置的数组和字符串类型序列容器序列容器维护元素的顺序,适合需要按索引访问或顺序遍历的场景向量(...
- Java八股文:核心知识点梳理(java八股文是啥)
-
一、Java基础1.Java基本数据类型8种基本类型:整型:byte(1),short(2),int(4),long(8)浮点型:float(4),double(8)字符型:char(2)布...
- 为什么我不推荐研发人员使用 LinkedList?
-
在Java集合框架中,LinkedList作为List的实现之一,经常被认为是ArrayList的替代方案。然而,在大多数实际场景下,我们并不推荐使用LinkedList,原因主要集中...
- ArrayList 、 LinkedList、Vector的区别
-
ArrayList、LinkedList、Vector的区别如下:ArrayListLinkedListVector结构动态数组双向链表动态数组是否线程安全否否是效率遍历查找快,插入删除慢插入删除...
- (2020 )Java最新面试笔试题答案解析(一)
-
Java中的集中基本数据类型是什么?各占用多少字节?【数值型】—(整数类型)byte(1字节)short(2字节)int(4字节)long(8字节)拓展:Java中的数据类型除了上面的基本...
- 超简单五步实现Linux虚拟机CentOS 7系统Root密码忘记重置
-
环境:CentOS7.5重置root密码:1.CentOS7虚拟机开机,将鼠标光标移动至虚拟机内。2.在虚拟机中使用键盘上↑和↓键将选择行设置为第一行(背景高亮即为选中),按下键盘上的e,进...
- 吊轨门和推拉门哪个好?北京今朝区别介绍看完不入坑
-
厨房到底使用什么门好?相信这是大多数业主都比较抓狂的事情,其实在装修中材料的选择最终还是要依据空间而定,那么吊轨门和推拉门哪个好呢?下面就跟随北京装修网一起来看看吧!吊轨门与推拉门介绍吊轨门吊轨门的特...
- 〖省钱宝典〗不花冤枉钱,少走弯路!居家中推拉门如何设计?
-
想要空间最大程度的显大?想要充足的光线?又想拥有合理的区域划分?那么推拉门是你绝对不能错过的好选择。推拉门的设计轻盈简洁,绝对是室内每个空间的福音。它不仅可以最大化地节省空间,方便了居室的功能划分和利...
- 吊趟门与推拉门有什么区别?(吊趟门贵还是推拉门贵)
-
吊趟门与推拉门的区别很多人在购买的时候并不清楚,有些客人甚至根本分不清吊趟门和推拉门,今天小编就给大家讲讲吊趟门与推拉门的相关内容,看看吊趟门与推拉门的区别有哪些?1、推拉门采用以门扇下滑轮为主支撑点...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Java中List 和 Map、Set 的区别(list和set和map)
- Java 集合框架全面解析:选对数据结构,提升开发效率
- LinkedList竟然比ArrayList慢了1000多倍?(动图+性能评测)
- LinkedList 底层源码深度解析(linkedlist底层数据结构)
- List的用法和实例详解——Java进阶知识讲义系列(四)
- Rust高效集合操作(rust基本操作)
- Java八股文:核心知识点梳理(java八股文是啥)
- 面试题:ArrayList和LinkedList有什么区别?
- 为什么我不推荐研发人员使用 LinkedList?
- ArrayList 、 LinkedList、Vector的区别
- 标签列表
-
- hive行转列函数 (63)
- sourcemap文件是什么 (54)
- display none 隐藏后怎么显示 (56)
- 共享锁和排他锁的区别 (51)
- httpservletrequest 获取参数 (64)
- jstl包 (64)
- qsharedmemory (50)
- watch computed (53)
- java中switch (68)
- date.now (55)
- git-bash (56)
- 盒子垂直居中 (68)
- npm是什么命令 (62)
- python中+=代表什么 (70)
- fsimage (51)
- nginx break (61)
- mysql分区表的优缺点 (53)
- centos7切换到图形界面 (55)
- 前端深拷贝 (62)
- kmp模式匹配算法 (57)
- jsjson字符串转json对象 (53)
- jdbc connection (61)
- javascript字符串转换为数字 (54)
- mybatis 使用 (73)
- 安装mysql数据库 (55)