thrift多平台安装
2019独角兽企业重金招聘Python工程师标准>>>
thrift支持多语言的RPC,一直都想深入学习了解thrift,最近有空,就上网查了些资料,学习了一下,对它的使用有了一些了解。本篇是写thrift的安装,使用方法会另起一篇来写。
本文使用thrift的版本是0.9.1。
1.windows平台安装
直接下载编译好的exe文件,就可以使用了。
下载链接在这里
新建目录,C:\Program Files\thrift,把下载好的thrift-0.9.1.exe文件放在里面。把C:\Program Files\thrift添加到windows下面的环境变量,如下图
现在使用thrift官网的例子来试试thrift是否正确安装。
example.thrift文件里面的内容是:
struct UserProfile {1: i32 uid,2: string name,3: string blurb}service UserStorage {void store(1: UserProfile user),UserProfile retrieve(1: i32 uid)}
使用命令,thrift-0.9.1 --gen erl example.thrift来产生erlang的代码文件。从下图可以看出,它会在目录下面产生一个gen-erl文件夹,里面就是我们需要的代码文件了。
大家可以试一下其他语言,例如go,js,php,cpp。
到这里,windows下面的thrift安装就完成了。
2.debian/ubuntu下面源码编译安装thrift
源码编译安装就是麻烦一点,首先要安装thrift的依赖包。
主要参考Debian or Ubuntu setup, 以及Building from source
安装依赖:
apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
在ubuntu 13.04或者更高版本可以使用下面命令来安装所有依赖包:
apt-get build-dep thrift-compiler -y
安装erlang包,编译需要启用erlang支持:
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
dpkg -i erlang-solutions_1.0_all.deb
apt-get update
apt-get install erlang
在debian平台可能会报错:
证书所有者与主机名 “packages.erlang-solutions.com” 不符
可以使用下面命令来下载
wget --no-check-certificate -c https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
在安装的过程中,输入wheezy。
erlang-solutions的erlang版本版本是最新的,而且可以根据你的linux系统来设置软件源,更新erlang包方便很多。
使用git下载thrift源码
git clone -b 0.9.1 https://github.com/apache/thrift thrift-0.9.1
特意使用git下载,而不是直接下载apache打包好的tar包,是因为apache在打源码包的时候,出现了一些其他问题。[O]Ubuntu 13.10 thrift-0.9.1 安装 介绍到这个问题。我自己也是遇到了这个坑,才会使用这个方法下载源码。
./bootstrap.sh
./configure --with-cpp=no --with-python=nomakemake checkmake install
上面configure不启动cpp以及python支持,原因有2个:
原因1,在make check段,总是报错,通不过测试。我发现部分原因是有些测试代码缺失,没完成,例如变量没填上。对于没有通过测试用例的代码,我自己总是持怀疑态度。
原因2,我自己没使用cpp以及python。
当然,如果你不关注测试用例,你可以直接make && make install
编译安装完毕后,在/usr/lib/erlang/lib/thrift-0.9.1里面就是thrift对erlang语言的代码支持包。里面有thrift的erlang代码,大家可以看看。
使用thrift --gen erl example.thrift就可以产生我们需要的代码文件。
3.centos安装thrift
在centos源码安装thrift 0.9.1版本麻烦,我自己是没有成功。
在CentOS setup介绍了centos的编译方法,我照着做,但是autoconf的版本不给力,比thrift要求的版本要低。可怜我使用的是centos 6.5,是最新的centos版本了,这可咋整?
在经过编译安装最新版autoconf折腾后,编译thrift还是报错。我放弃编译了,改为直接使用其他人的二进制包。
centos的rpm包就是多,我搜索了n久,终于发现了下面这个链接,里面就有编译好的thrift包。
http://download.opensuse.org/repositories/home:/jblunck:/messaging/CentOS_CentOS-6/
好,下载repo文件,直接下载安装thrift
cd /etc/yum.repos.d/
wget -c http://download.opensuse.org/repositories/home:/jblunck:/messaging/CentOS_CentOS-6/home:jblunck:messaging.repo
yum makecache
yum install thrift
安装过程中会要求你确认是否安装,这是因为包没有签名,没有关系,我直接回答y。
使用这种方法安装的thrift跟windows下安装的thrift差不多,只能产生多语言的代码文件,但是缺少里面的语言的驱动代码文件。
至此,thrift的安装步骤完成,下篇会介绍如何根据thrift来写一个具体的erlang项目。
转载于:https://my.oschina.net/u/191928/blog/618665
thrift多平台安装相关推荐
- Microsoft Web 平台安装程序 (Web PI) Microsoft Web Platform Installer
Microsoft Web 平台安装程序 3.0 (Web PI) 是一款免费的工具,使用它可以获得 Microsoft Web 平台的最新组件(包括 Internet Information Ser ...
- 天兔(Lepus)监控系统慢查询分析平台安装配置
转http://suifu.blog.51cto.com/9167728/1770672 被监控端要安装pt工具 1 2 3 4 [root@HE1~]## yum -y install perl-I ...
- 山东华为服务器安装系统,山东云服务器平台安装
山东云服务器平台安装 内容精选 换一换 当用户不再需要使用某个应用时,可以参考如下操作,从GPU加速型云服务器中卸载该应用.应用删除时,您可以选择是否保留应用数据.如果当前应用下存在订单状态为&quo ...
- 三.Linux平台安装MongoDB
Linux平台安装MongoDB 1.配置方法 安装(使用yum源安装) 在/etc/yum.repos.d 创建一个mongodb-org.repo源文件 vi /etc/yum.repos.d/m ...
- 安装慢_Origin平台安装更新慢的解决办法
Origin平台安装更新慢的解决办法: origin开始下载更新后, [注: ProgramDate文件夹需勾选 隐藏的项目 才能显示] 首先在C:ProgramDataOriginSelfUpdat ...
- Centos7.0上搭建LAMP平台安装discuz后无法访问
Centos7.0上搭建LAMP平台安装discuz后无法访问,出现500错误.解决方式:centos7.0上的php程序是5.4的,编译安装一个5.3版本的就可以访问了. 转载于:https://b ...
- OVM虚拟化平台安装成功后初始化配置方法!
为什么80%的码农都做不了架构师?>>> 对于首安装OVM用户,在OVM平台安装成功后,第一次登陆出现无法登陆的状况! OVM管理平台在成功安装后,必需进行admin初始化设 ...
- linux平台安装React Native遇到的坑
3年前我在windows平台安装过React Native,我一直都记忆犹新,那个时候facebook刚推出支持安卓,然后花了一天的时间在自己的window电脑上配置好了,还是很兴奋的,安装博客地址如 ...
- centos mysql mongodb_Linux 平台安装 MongoDB | 菜鸟教程
Linux平台安装MongoDB MongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包. 安装前我们需要安装各个 Linux 平台依赖包. Red Hat/Cen ...
最新文章
- 单目深度估计与伪雷达点云、可视化
- 创建oracle发邮件job导致的故障
- tensorflow从入门到精通100讲(四)-细粒度的情感分析Gated Convolutional Networks
- java hashedmap_Java基础 - Map接口的实现类 : HashedMap / LinkedHashMap /TreeMap 的构造/修改/遍历/ 集合视图方法/双向迭代输出...
- sed搜索某行在行末追加_linux shell 用sed命令在文本的行尾或行首添加字符
- 【Linux系统编程应用】 Linux系统中找不到设备/dev/fb0
- dll 源码_【技术分享】 | 一个JAVA内存马的源码分析
- C++11 FAQ中文版:std::function 和 std::bind
- 今日头条的 ByteSpider,怎么就成了小网站的“噩梦”?
- 电信设置的nat 虚拟服务器192.168.1.3 是什么,VMware WorkStation的三种网络连接方式详解...
- 物联网将如何影响你的钱包?
- fcpx瘦身插件_FCPX有哪些特别好用的插件?
- Bat清理Chrome谷歌浏览器所有缓存
- 策略模式:网络小说的固定套路
- linux超市参数,TI AM5708开发板产品参数介绍
- 2021年茶艺师(中级)考试题库及茶艺师(中级)报名考试
- 3D游戏编程与设计5——与游戏世界交互
- 惠普笔记本拆机,加装固态硬盘,重装系统经验
- bzoj 3728 zarovik 买灯泡
- web-sso 系统集成 单点登录