ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

sqlcipher离线编译

2022-04-02 18:31:39  阅读:202  来源: 互联网

标签:sqlite 离线 openssl 编译 usr sqlcipher local


编译tcl

# tar -xvzf tcl8.6.9-src.tar.gz
# cd tcl8.69/unix
# ./configure --prefix=/user/local/tcl
# make
# sudo make install
# sudo ln -s /user/local/tcl/bin/tclsh8.6 /bin/tclsh

编译sqlite3

SQLite不使用Git版本控制系统。SQLite使用Fossil作为替代  make clean
    1,下载SQLite源代码sqlite-3.6.23.1.tar.gz
    2,复制sqlite-3.6.23.1.tar.gz到linux上的/usr/src目录
    3,  解压源代码 tar -xvzf sqlite-3.6.23.1.tar.gz
    4,进入源代码目录  cd sqlite-3.6.23.1
    5,配置编译与安装参数
         ./configure   --prefix=/usr/local/sqlite
    6,编译 make
    7, 安装  make install
    进入SQLite安装目录
    cd /usr/local/sqlite/bin
    安装好SQLite后,主要包括命令文件、头文件和库文件。
    目录文件 说明
    /usr/local/sqlite/bin 只有一个命令文件Sqlite 
    /usr/local/sqlite/include 包含sqlite3.h和sqlite3ext.h两个头文件
    /usr/local/sqlite/lib 包含libsqlite3.so和libsqlite3.a等SQLite静态库和动态库文件
    

LD_LIBRARY_PATH: 动态库的查找路径
使用时将sqlite3命令文件和库文件路径导入到环境变量,可修改~/.bashrc文件或~/.bash_profile文件或/etc/profile文件。
$ vi ~/.bashrc        // 修改配置文件,添加以下两行
复制代码 代码如下:
export PATH=/usr/local/sqlite/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/sqlite/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=/usr/local/sqlite/include:$C_INCLUDE_PATH
##    
 source ~/.bashrc       // 执行配置文件
 C_INCLUDE_PATH、CPLUS_INCLUDE_PATH

openssh

  https://www.openssl.org/source/
 https://github.com/openssl/openssl
    $ ./Configure --prefix=/usr/local/ssl --openssldir=/usr/local/ssl  '-Wl,-rpath,$(LIBRPATH)'
	https://github.com/openssl/openssl/blob/master/NOTES-UNIX.md
 1. 安装activePerl,因为OPENSSL源码需要用到perl指令。(http://www.activestate.com/activeperl/downloads)
 2. 下载openssl源码。(https://www.openssl.org/source/)
 3. 下载MASM,因为需要对汇编语言编译。(http://www.microsoft.com/en-us/download/)

sqlcipher在linux上编译

 编译sqlite,只需按照readme中的方法编译即可。
 编译sqlcipher,在linux上测试,
      只需配置configure时,增加SQLITE_HAS_CODEC和SQLITE_TEMP_STORE=2,就可以正常编译出有加密功能的sqlite3可执行文件
 	 sqlcipher使用了openssl的加密算法,因此,需要下载编译openssl库文件
 sqlcipher是sqlite3的加强版,提供加密。
 也就是sqlite3的修改版,里面修改添加了代码,并以一些预编译宏来进行分支选路。
 所有修改过的代码片段都包含在预编译宏SQLITE_HAS_CODEC保护下  SQLITE_TEMP_STORE 编译时参数是源代码中的宏定义(#define),其取值范围是0到3(缺省值为1)
 
  ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC"
  
  sqlite-release/manifest', needed by `sqlite3.h'.  Stop.
  SQLITE_HAS_CODEC 和 SQLITE_TEMP_STORE=2

 ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" --prefix=/usr/local/sqlcipher -L /usr/local/sqlite/include
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto -L /usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include"
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto -L /usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include"
$ make
$ sudo make install

验证和创建

  验证sqlcipher

   # sqlcipher
  创建加密数据库
  # sqlcipher test.db	

参考

https://github.com/mackyle/sqlite
https://sqlite.org/src/dir?ci=trunk
https://repo.or.cz/sqlite.git	
https://github.com/sqlcipher/sqlcipher	
https://github.com/tcltk/tcl/archive/refs/tags/release.tar.gz

标签:sqlite,离线,openssl,编译,usr,sqlcipher,local
来源: https://www.cnblogs.com/ytwang/p/16093510.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有