只是存一些代码。
Tag: linux
linux学习笔记:JDK, rJava以及RJDBC
出于某些原因,最近申请了一个虚拟服务器(虽然有现成的R服务器,但是没有sudo总是各种不爽...),然后开始自己折腾linux...(向着码农方向前进,前进,前...)以下为小白笔记,抄在这里防止自己日后翻回来重新折腾一遍。高手请无视~
服务器是公司C3云上的一片,我选的ubuntu 12.04开始折腾。由于是远程server,所以只能shell操作 T_T 看不到ubuntu华丽丽的界面了。
装R倒是不麻烦,把镜像加一下就好了。编辑/etc/apt/sources.list,然后加上这句(看了一下我的ubuntu是precise版本的)。不加这句的后果就是...装了个上个世纪版本的R?
sudo vi /etc/apt/sources.list deb http://cran.cnr.berkeley.edu/bin/linux/ubuntu precise/ #文件里加上这一行
然后就直接安...
sudo apt-get update sudo apt-get install r-base
然后就开始折腾RODBC,给teradata跪了,安个teradata ODBC Driver死活不成功,最后请教同事决定投保RJDBC的怀抱。
JDBC基于Java,自然需要装JDK。网上搜了一下,貌似有个open jdk可用。
sudo apt-get install openjdk-7-jdk sudo update-alternatives --config java #如果已经有多个jre,记得选一个...
然后保险起见,配一下java的路径。
sudo R CMD javareconf
如果看到下面这一段,那么就OK了。
JAVA_HOME : /usr/lib/jvm/java-7-openjdk-amd64/jre Java library path: $(JAVA_HOME)/lib/amd64/server JNI cpp flags : -I$(JAVA_HOME)/../include JNI linker flags : -L$(JAVA_HOME)/lib/amd64/server -ljvm Updating Java configuration in /usr/lib/R Done.
然后就可以开始装R里面的那堆包了。R很神奇,必须sudo R之后install.packages()
才有用...可怜我折腾了半天一直报错。
然后发现sudo的问题之后,顺利的装上了RJDBC.
sudo R
install.packages("rJava")
install.packages("RJDBC")
然后就是Teradata JDBC Driver了。这厮比ODBC好装的多...基本就是解压...然后就没有然后了。
都弄好了之后,就可以在R里面测试着玩了。
library(RJDBC)
jdbc.drv <- JDBC("com.teradata.jdbc.TeraDriver", c("/home/user_name/terajdbc4.jar", "/home/user_name/tdgssconfig.jar"))
jdbc.conn <- dbConnect(jdbc.drv, "jdbc:teradata://xxxx", "xxx", "xxxx")
然后就是JDBC的一些相关函数了。
dbSendQuery(jdbc.conn ,"CREATE TABLE XXX AS XXXX WITH DATA;") #只执行不返回结果 dbGetQuery(jdbc.conn ,"sel 1 from xxx") #执行且返回data.frame(fetch完毕的)
然后就可以开始各种蹂躏了。
只是让我不爽的是,折腾了许久也没搞定发email...sendmail、mail什么的都不管用,莫非我SMTP没有配?继续google去了。
-----------------4.3更新----------------
原来C3和LDAP是直接集成的,所以别人的帐号也可以登入我的server。之后,一句命令可以加入sudo组:
sudo adduser username sudo
----------------4.4更新----------------
今天在同事的帮助下搞定了Rstudio Server版,瞬间爽翻了...
以前是ubuntu 12.04下有个东西装不上: libssl0.9.8。因为默认装好了1.0版本的。但是Rstudio现在的版本必须调用0.9.8版本...于是强行装旧版:
sudo wget http://mirrors.kernel.org/ubuntu/pool/universe/o/openssl098/libssl0.9.8_0.9.8o-7ubuntu3.1_amd64.deb sudo gdebi libssl0.9.8_0.9.8o-7ubuntu3.1_amd64.deb
然后再去装一下Rstudio Server版就好了。
sudo gdebi rstudio-server-0.98.501-amd64.deb
然后为了调RJDBC,配置一下环境变量:
sudo vi /etc/profile
加入这么两行
export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre" export PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
然后刷新一下。
source /etc/profile
这样就搞定啦。Rstudio监听在服务器的8787端口。可以直接/server:8787 登入。
LyX2+XeTeX/LaTeX若干中文问题
最近琢磨着用sweave写一篇中文报告,结果打开LyX 2.0之后华丽丽的发现已然不知道一份中文的文档应该怎么写了。上一次用Latex玩中文的东西怕是要追溯到本科毕业论文了。而后一年的时间,就从来没用latex编译过任何中文的文档,也难免突然不知所措了。
LyX 2.0相比1.6x变化还是蛮大的,折腾了半天我也没弄明白怎么可以调出中文来。原来的时候觉得XeTeX慢,就一直用ctex+pdflatex的解决办法。可是不知道为什么,这一次中文总是乱码,改成UTF-8也是,弄得我好痛苦。于是一边折腾texlive,一边先在LyX里面用英文写报告。往后再慢慢翻译好了。
终于,在这个中秋假期临近尾声的时候,我没理由再拖着不把中文搞定了。于是,先调回到ubuntu去,从简单的linux软柿子捏。装完texlive 2011,找着网上的若干教程一步步走下来,比如这个,却发现我总是遇到一个莫名其妙的错误问题。错误提示大致如下:
! Undefined control sequence. <argument> ExplFileName
网上哗啦啦的搜了一番,发现原因大概是l3kernel, l3package和fontspec这个包之间的兼容问题。然后照着网上的步骤删除掉expl3这个文件夹,华丽丽的错误又出现了:
! LaTeX Error: File `expl3.sty' not found.
只有各种崩溃啊。最后忍无可忍,一个 rm -dR * 命令删掉了texlive文件夹下所有的文件。重新开始!
这一次学乖了,不用基于internet的网络安装texlive,改成ISO镜像安装(我下的是20110705版的),怎么也是打包好的镜像,不会出什么问题吧?吸取教训坚决不去tlmgr update -all了,就这个版本能用就行。话说,在ubuntu下配置环境变量$PATH的方法有许多,我最后发现还是直接改/etc/environment这个文件来的比较快,比改/home/username/.bashrck(看不到这些文件的话请在窗口上面选View -> Show Hidden Files)方便很多。不过ubuntu真的感觉还是离开了terminal寸步难行啊,总得sudo -i一下才能过得比较舒服。
然后打开LyX,什么乱码之类的浮云都不见了,顺利的编译中文文档。我是在language那里直接选择不用任何语言包,很清爽啊。导言区加了几行字来适应中文。看了一下对应的latex源代码,也蛮简单的,
documentclass{article}
makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
usepackage {fontspec}
setmainfont {WenQuanYi Micro Hei}
XeTeXlinebreaklocale “zh”%中文断行
XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt%左右弹性间距
makeatother
usepackage{xunicode}
begin{document}
只是记得要在文档选项那里把output选成xetex就好了。然后华丽丽的文驿泉中文文档出现……好吧,我去研究一下怎么用宋体。
至此,LyX 2 配合Xetex的中文问题就顺利的搞定了,感觉在linux下编译xetex还是蛮快的。先这么凑合着用吧,接下来研究sweave的中文支持问题去。
ubuntu的纠结~
话说,当人无聊的时候,就开始喜欢折腾电脑。这个本本上的xp已经一年多没重装了,速度也越来越慢,像个背着房子的蜗牛似的。昨天被许大仙忽悠着就下了一个ubuntu v10,然后被忽悠着就在xp下面装起来了ubuntu。然后,然后,在困难的重启之后,终于看到的如下的类似启动界面。刚刚感叹了一下真是漂亮啊,进去之后就再也感叹不出声了。果真如许大仙所说,ubuntu已经蜕变成高端玩物了,我这等半残废本本跑起来那叫个吃力啊。
没办法,在ubuntu下痛苦的打开firefox,然后登上gtalk,开始继续向许大仙求救。结果还没法输入中文。哈哈,其实对我来说,无所谓的,但是想想那边许大仙痛苦的表情,还是先装个输入法吧。别的输入法都挺麻烦的也不够好用,不过吾等有“搜狗云输入法”此等神器,一个firefox插件搞定,多快捷。而且选词的效率真的是很高啊,除了只能在firefox里面输入、只能联网使用之外真的无可挑剔了。还不占系统资源……其实我在win下面也曾经依赖过此等神器好一段时间……
进了ubuntu,才知道原来xp下的firefox是多么的丑啊。可惜ubuntu虽然漂亮,但是俺的破车拉不动美女,只能回头载上古老的xp……唉。于是乎又下了一个netbook版的ubuntu,准备抽空继续折腾。这个能在Windows下直接安装ubuntu确实比较爽,不用刻盘不用优盘,我就是喜欢硬盘安装,哈哈。
话说,转到ubuntu的动机就是除了网银真的找不到什么继续使用xp的理由了。firefox完美支持linux不说,lyx、texlive、R等长年以来的神器都有对应的linux版本的。况且还有wine可以挂着linux玩植物大战僵尸,多爽啊~于是,继续折腾可怜的本本,向着ubuntu的美丽怀抱奔去……但是为什么,我还是不得不在windows下面撰写这篇日志呢?多想直接在ubuntu下写啊……