Ubuntu下密码学开发环境搭建
来源:互联网 发布:linux samba服务器配置 编辑:程序博客网 时间:2024/06/01 07:48
Ubuntu下密码学开发环境搭建
题记
由于最近在做一些关于密码学的项目,而密码学大部分开源库都依赖于Linux环境,所以在Ubuntu下搭建密码学开发环境就变得很有必要了。本文介绍了在ubuntu下搭建密码学开发环境的必要步骤,同时进行了一些细微的设置,以提高使用感受。
Ubuntu系统安装并设置root账户。
我安装的是Ubuntu13.10 。由于开发的过程中需要频繁修改各种conf文件,或者修改/usr文件夹中的文件,所以管理员权限下的sudo显然无法满足我们的需求,我们需要建立root账户,以便我们开展以后的工作。
首先是开启root帐号,设置root密码
sudo passwd root然后根据提示两次输入新的密码即可,这个时候就可以使用root权限登录了。但是如果我们注销登录,会发现系统根本不允许我们使用root账户登录,必须在进入账户之后再进行权限提升,这显然不能满足我们的需求。这是因为ubuntu默认隐藏root账户的原因。所以要修改配置。
修改lightdm配置
打开Terminal,修改 /etc/lightdm/lightdm.conf.d/10-ubuntu.conf 文件:
sudo gedit /etc/lightdm/lightdm.conf.d/10-ubuntu.conf添加如下内容
greeter-show-manual-login=true #允许手工输入登陆系统的用户名和密码allow-guest=true #允许guest登录
值得一提的是,在ubuntu有些低版本中,需要修改的 /etc/lightdm/lightdm.conf文件,修改方法同上。
这样,我们就可以选择以root账户登录了。
Ubuntu下Eclipse安装与配置
我的主要工作是进行Java/Android 开发,底层调用是使用C层的库,也就是使用jni/NDK调用。因此,Eclipse是一个合适的开发工具。
1. Eclipse安装
最新版本的Eclipse 下载地址是https://www.eclipse.org/downloads/ 需要注意的是,32位系统和64位系统的Eclipse是有区别的,下载的时候要慎重。
Ubuntu中,测试系统是32位还是64位有两个方法:
1,Terminal里输入 uname -m 返回i686即为32位系统,返回x86_64即为64位系统;
2,Terminal里输入 getconf LONG_BIT,这个命令是返回系统中long型数据的长度,若返回32即为32位系统,64即为64位系统。
下载后解压到/usr/local/java 文件夹中。
2.Eclipse Bug修复
需要说明的是,Ubuntu12.10之后的unity界面有bug,而eclipse的界面使用unity的界面代理,导致有很大几率无法显示eclipse菜单,所以必须新建快捷方式,以此开启禁用菜单代理选项模式的Eclipse(如果安装完毕后打开Eclipse,发现自己的菜单栏可以使用,可以跳过这一步)。解决方法如下:
1.新建快捷方式。
在任意文件夹(建议在桌面)新建->空白文档,输入以下代码
[Desktop Entry]Categories=Development;Comment[zh_CN]=Comment=Exec=env UBUNTU_MENUPROXY= /usr/local/java/eclipse/eclipseGenericName[zh_CN]=IDEGenericName=IDEIcon=/usr/local/java/eclipse/icon.xpmMimeType=Name[zh_CN]=eclipseName=eclipsePath=StartupNotify=trueTerminal=falseType=ApplicationX-DBUS-ServiceName=X-DBUS-StartupType=X-KDE-SubstituteUID=falseX-KDE-Username=owenExec=env UBUNTU_MENUPROXY=0 /usr/local/java/eclipse/eclipse重点语句为
Exec=env UBUNTU_MENUPROXY=0 /usr/local/java/eclipse/eclipse其作用是禁用菜单代理。
之后保存并推出,将文件重命名为eclipse.desktop,右键该文件增加权限,并检查命令是否正确,如图所示:
之后双击桌面图标就可以打开了,菜单也可以实现下拉。如果有需求,也可以将其固定在启动栏上。
Eclipse本身有自带JDK的版本,但是我还是希望安装独立的jdk,这样在有些需要在命令行下编译的时候,可以方便地调用javac和javah命令,所以下载纯净的的Eclipse,并配合oracle-jdk,JDK 8的下载地址为http://www.oracle.com/technetwork/java/javase/downloads/index.html 。如果使用openJDK,直接apt-get install安装即可。
下载完毕后解压,将解压好的jdk1.8.0_5文件夹移动到/usr/lib/jvm目录里,此时即使没有jvm目录也可以执行如下命令,jvm文件夹将得到创建。
mv jdk1.8.0_5 /usr/lib/jvm下面修改环境变量,以便在任何目录下均可调用Java命令。修改/etc/profile
gedit /etc/profile在末尾添加:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_5export JRE_HOME=/usr/lib/jvm/jdk1.8.0_5/jreexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$PATH需要注意的有两点,一是CLASSPATH第一个冒号前面的小点,指的是“当前目录”,必须要加上;二是将jdk1.8.0_5替换为自己的Java版本号。
保存后执行:
source /etc/profile这样就完成了java环境变量的配置。测试环境变量配置正确的方法如下:
java -version显示如下内容,代表Java配置正确:
java version "1.8.0_05"Java(TM) SE Runtime Environment (build 1.8.0_05-b13)Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
Eclipse中C/C++开发需要CDT插件,CDT插件安装方法如下:
启动Eclipse,选择Help > Install New Software;
在 Available Software 对话框中,单击 Add…;
在 Add Site 对话框的 Name 字段中,输入远程站点的名称(例如“C Plugin”)。在 Location 字段中,输入下面的 URL:http://download.eclipse.org/tools/cdt/releases/kepler. 点击确定,pending之后全选下面的选项,一路下一步即可完成安装。
3.Andorid SDK环境搭建
Eclipse ADT(Android Developer Tools)安装启动Eclipse,选择Help > Install New Software。
在 Available Software 对话框中,单击 Add…,如图所示。
在 Add Site 对话框的 Name 字段中,输入远程站点的名称(例如“Android Plugin”)。在 Location 字段中,输入下面的 URL:https://dl-ssl.google.com/android/eclipse/注意:如果访 问该插件时遇到问题,可以将 URL 中的 https 改成 http(使用https会更安全一些)。单击 OK。
回到 Available Software 界面,应该可以看到列表中的 Developer Tools 选项。选择 Developer Tools 旁边的复选框,会同时选中 Android DDMS 和 Android Development Tools。单击 Next。
在最后的 Install Details 对话框中,会列出 Android DDMS 和 Android Development Tools 等特性。单击 Next 阅读并接受许可协议,同时安装所有依赖组件,然后单击 Finish。
重新启动 Eclipse。
3.安装android sdk
重启Eclipse之后,会弹出提示,Android SDK位置并未给出,如图所示:
现在我们需要切出去,下载 Android SDK Tools,地址如下:http://developer.android.com/sdk/index.html
下载 SDK Tools Only即可。下载完毕后解压到任意文件夹。切回Eclipse,将SDK 路径设为刚才Android SDK Tools解压的位置,然后一路下一步安装sdk即可。以后如果需要其他版本的SDK,可打开Android SDK Manager下载。为了让SDK在Terminal下也能使用,配置下sdk的环境变量,修改/etc/profile
sudo gedit /etc/profile在末尾添加:
# Android SDKexport ANDROID_SDK=~/developTools/android-sdk-linuxexport PATH=$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$PATH
添加完成不要忘了在Terminal中输入
source /etc/profile进行测试:emulator -version 结果如图所示
4.安装Android NDK
NDK在某些需要调用C库文件的场景中需要。NDK下载地址为:
http://developer.android.com/tools/sdk/ndk/index.html
下载完毕后解压到任意文件夹中,并如sdk一样配置环境变量
sudo gedit /etc/profile在末尾添加:
export NDK_HOME=/home/snowdream/android-ndk-r5export PATH=$NDK_HOME:$PATH记住将路径替换为自己NDK所解压的路径。
添加完成不要忘了
source /etc/profile
进行测试:Terminal下输入
ndk-build -version
结果会显示ndk-build的正确版本号。
环境安装完毕。
密码学库文件安装
首先安装pbc系列库。
1. pbc依赖的库安装pbc 库依赖于
M4
GMP Library
flex
bison
其中 M4、flex、bison均可以通过apt-get install安装
apt-get install M4 apt-get install flex apt-get install bisonGMP下载地址如下:
https://gmplib.org/
下载并解压,在terminal里进入解压文件夹安装,方法如下:
./configuremakemake check make install
2. pbc 安装
pbc(The Pairing-Based Cryptography Library)下载地址如下:
http://crypto.stanford.edu/pbc/download.html下载并解压,在terminal里进入解压文件夹安装,方法如下:
./configure make make install
至此,密码学开发环境搭建完成。如果需要开发Java/Android的项目,那么就需要一些JNI/NDK开发的知识了。值得庆幸的是,pbc库已经有了JPBC版本,下载地址与pbc下载地址相同,其本质是pbc库的一个java接口,所以它依然依赖于pbc库。下面给出一种直接生成libjpbc-pbc.so动态链接库的方法,使其不依赖于pbc库,但需要注意的是,如果pbc库本身有变动,那么需要重新生成库文件。另外,笔者也不保证这种生成方法足够稳定。
此方法依赖于cmake 和ccmake,二者为编程常用工具,安装方法如下
apt-get install cmake apt-get install cmake-curses-gui
安装完毕后,在teminal下进入jpbc解压目录(以<jpbc>代指),输入
cd <jpbc>/jpbc-pbc ccmake .显示如图所示:
像make的使用方法一样,输入c,再输入g,此时,在<jpbc>/jpbc-pbc文件夹中生成了必要的Makefile文件
然后输入
make
输入如图所示
这个库文件即为java可以调用的so文件,在调用的时候注意设置java.library.path即可。
虽然我们的基本开发环境搭建完毕,但是根据每个人的需求不同,我们需要另行下载自己需要的库文件,例如经常用到的openSSL。这些文件限于篇幅,就不进行一一介绍了,如果有这些开源库使用方面的讨论,也请大家不要忘记带上笔者:)
- Ubuntu下密码学开发环境搭建
- Ubuntu下密码学开发环境搭建
- Ubuntu下开发环境搭建
- ubuntu环境下java开发环境搭建
- ubuntu环境下Theano开发环境搭建
- ubuntu环境下搭建python3开发环境
- Ubuntu下搭建Java开发环境[转帖 ]
- ubuntu下搭建open offcie开发环境
- Ubuntu下开发环境的搭建
- ubuntu下QT4开发环境的搭建
- Ubuntu下搭建Java开发环境[引用]
- linux(ubuntu)下ruby开发环境搭建
- ubuntu下QT4开发环境的搭建
- ubuntu 8.04 下搭建davinci开发环境
- ubuntu下android开发环境搭建
- Ubuntu下QT4开发环境的搭建
- Ubuntu下 嵌入式开发环境的搭建:
- Ubuntu下搭建Java开发环境
- 使用screen 报错 Cannot open your terminal '/dev/pts/1'问题
- Linux下iptables的工作机制图解以及在NAT的应用
- week8作业
- python exec/eval/execfile
- 将一链表逆置
- Ubuntu下密码学开发环境搭建
- python数据结构与算法 29-1 哈希查找
- 会计分录
- python数据结构与算法30 冒泡排序
- MATLAB2012b+libSvm3.14+VS2010安装问题
- 8位灰度图像BMP的保存(很好的一篇文章)
- hdu 2767 超内存 哪位大神能帮忙改改
- [转] OS X v10.x里操控路由的命令(wireless优先出Internet)
- ctypes