Centos6编译安装最新Aria2 1.27.1——带你临近网速极限

一.引

Centos6是我最常用的系统,稳定而且上手之后棒棒的,然而有个问题一直比较尴尬,就是很多软件在Centos6的源里版本落后太多,甚至已经不更新了,这真的尴尬啊,aria2就是这样……作为一款在Rpmforge(Repoforge)源中已经停更的软件(Rpmforge本身都已经放弃维护了),它的版本永远停留在了1.16.4,然而截止目前来说,aria2最新版本已经到了1.27.1,最蛋疼的是这玩意的1.18版本是个坎,很多的配置项都要求在1.18版本以上,特别是rpc-secret这个安全性更新,所以,没办法了,只能上编译大法了。

二.续

PS.最近发现确实是不少人来看这篇文章,我觉得有必要先说明一点,这个是我当初没找到有人发布静态编译的时候手动编译的过程,说实在话比较烦人,如果有想上手即用的建议参考我这篇文章中的静态编译版本,只需要解压然后加个可执行权限就能用——>传送门

首先是一堆依赖包,是的……作为一个强迫症我努力把依赖尽可能满足,所以多了一大堆包_(:з」∠)_,你们可以随意哟

其中最后的gperftools和jemalloc二选一,第一个是TCMalloc要求,第二个是JEMalloc要求,其中libuv-devel、cppunit-devel都是可选的,要不要随意~\(≧▽≦)/~啦啦啦

然后就是编译啦,最新版本目前是1.27.1,还真是快呢,前两个星期我编译的时候还是1.26.1

这个是半静态编译(其实想完全静态编译的,可惜那堆依赖纯静态的太难找了,只能凑合了),不需要的可以去掉--enable-static=yes --enable-shared=no以及最后的 ARIA2_STATIC=yes,当然如果你的系统ca-bundle不知道在哪也可以去掉那个选项,至于jemalloc的话可以换成tcmalloc,看你自己的喜好了,libuv也可以去掉哟,所以其实啥参数都可以不带呢_(:з」∠)_

PS.编译Aria2需要gcc >= 4.8.3 或者 clang >= 3.4,gcc在centos6中版本默认只有4.4,如需安装高版本得用其它方法,详情请参见我接下来的文章

另外还可能出现一个报错如下

sp20160919_223612

请运行如下命令

然后应该就能正常编译了

阅读全文→

配置SSH免密登陆——大门只向你敞开

一.引子

最近在忙大创项目,在折腾hadoop的过程中免不了需要创建一个新用户并配置ssh免密登陆,然而这个看起来简单得不能再简单的地方我也栽了个跟头,真的尴尬,不过还是记下来吧,希望其他碰到问题的人能顺利解决。

二.情况复现

那么到底发生了啥,请容我娓娓道来,因为我要把用户创建和配置全部写到脚本里,所以我期望做到的是尽可能少的交互操作,更接近无人值守式配置。

①.需要给新创建的用户hadoop赋予root权限。这个如果是交互式操作那很方便了,直接visudo然后按照root的权限格式添加hadoop就行,但是非交互式就需要直接操作/etc/sudoers文件了,我选择的是使用sed命令插入,虽然echo貌似也行,但不能准确插入到指定行,所以作为半个强迫症我果断放弃,那么问题来了,怎么获取目标行号?这就需要一套组合拳

这条命令便能输出"root    ALL=(ALL)       ALL"这行的行号,我们的目标便是在它的下一行插入"hadoop    ALL=(ALL)       ALL",所以我们需要

这里我一开始没加"a"(ahadoop前那个),然后试了半天各种报错……这个是after的意思,即为在指定行数之后,还有个"i"是之前。把这两条命令合并便是如下

OK,这个问题便解决了。 阅读全文→

Shell cat重定向到文件——批量写入利器

一.起因

今天被基友催着开始折腾hadoop集群的问题,考虑到要批量部署以及统一性的问题准备写个部署脚本,对bash脚本的话我也写过不少了,然而没想到还是碰到了问题。
因为要安装nutch、hbase、apache-ant、jdk等一堆程序,所以环境变量也有很多需要添加的,所以我没考虑使用echo逐行输入,而是使用了cat重定向到文件的方法,那么问题就来了,作为环境变量,那必然会有一大堆的"$"符号,于是乎……它们全被解析成具体的路径了,这就很尴尬。

二.解决方案

在手动修理完后我开始研究怎么样阻止这一悲剧的发生,经过一波搜索,我找到了两个办法。
①.另辟蹊径,既然你要变,我就让你先转义,看你还怎么变,在所有"$"前添加"\",然后就变成了"\$",这样便没有了问题。
②中规中矩,追根究底。按照V2上一篇帖子的说法,我去查了查shell相关的文档,然后发现这个是有提到解决办法的,那就是在EOF两边加上引号,如下

这样便会阻止在重定向输出过程中环境变量被替换的问题了。

Centos6(EL6)安装Python2.7——与时俱进(?)

一.缘起

Python的版本貌似更新的还是蛮快的,然而这和el6并没有关系……作为以稳定性著称的系统,各种包更新的确实是有点慢了(不是有点慢好吗,是根本没有啊),然而最近发现的一些有趣的轮子要求的Python版本竟然没有2.6……这就很尴尬了,我一开始还没在意,在各种报错之后才去看了下system requirement,然后_(:з」∠)_,我选择死亡,不得已只能想办法装个Python2.7了。

二.条条大路(???)

在网上以各种姿势搜了一下,发现大概是有三种方法来安装Python2.7(其中两种我还真是没见过)

①.RPM大法,这个是最方便的,然而那个RPM包我懵逼了,官方源貌似已经没这个包了,靠迅雷离线给强行下到了(我勒个擦,真的强)———该方法不推荐,包不够新,而且不保证出奇怪的问题

网上教程提供的基本上是

http://li.nux.ro/download/nux/dextop/el6/x86_64/python27-libs-2.7.3-6.2.el6.nux.x86_64.rpm

http://li.nux.ro/download/nux/dextop/el6/x86_64/python27-2.7.3-6.2.el6.nux.x86_64.rpm

http://li.nux.ro/download/nux/dextop/el6/x86_64/tkinter27-2.7.3-6.2.el6.nux.x86_64.rpm

http://li.nux.ro/download/nux/dextop/el6/x86_64/python27-devel-2.7.3-6.2.el6.nux.x86_64.rpm

这四个,然而全是404……喂喂喂,你们一个个写(抄)教程的能不能考虑下时效性,不要睁着眼说瞎话啊。

恩,然后我靠神秘的迅雷离线给抢救回来了,请参照如下命令安装

然后安装pip啥的就不说了,网上一大堆。 阅读全文→

为Chrome重新安装网盘助手(导出下载为Aria2)——为你的下载插上翅膀

一.起因

由于某些不可明说的原因,网盘助手(BaiduExporter)这款能够将百度网盘下载导出为aria2命令并且远程下载的神器被Chrome商店下架了,这就很尴尬,要知道度娘盘的限速实在是感人肺腑,Win平台还好,有各种破解版的百度云管家,但是OSX和Linux平台就尴尬了,总不能为了下个东西折腾来折腾去装虚拟机吧,所以我们还是得找办法安装这款插件。

二.安装过程

虽然在Chrome商店下架了,不过作者还是没有放弃(好样的),在Github依旧各种更新和解决Bug,所以我们就有了重新安装的基础(虽然找旧版也行,但是旧版很大可能性在以后被度娘给XX了),Github传送门

首先我们当然要做的是下载,点击Clone or download——Download ZIP,然后找个地方解压,我们会得到如下一堆文件(夹)

sp160906_223754

其中aria2c下面是一些说明和配置文件以及方便在win下使用的小工具(脚本)

而chrome文件夹下显然就是我们此次的目标了,我们有两种方法安装,首先先打开Chrome的拓展程序页面,然后勾选开发者模式

sp160906_224025

①我们可以直接选择"加载已解压的拓展程序...",这是第一种方法,但是这个会有个比较讨厌的提示……每次打开Chrome都会有如下的蛋疼情况

sp160906_224329

虽然谷歌确实是好心……但强迫症真的是要死了,所以这个方法我选择放弃 阅读全文→