Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the crayon-syntax-highlighter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /usr/share/nginx/html/shajisoft_wp/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the nimble-builder domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /usr/share/nginx/html/shajisoft_wp/wp-includes/functions.php on line 6114

Notice: 函数 _load_textdomain_just_in_time 的调用方法不正确customizr 域的翻译加载触发过早。这通常表示插件或主题中的某些代码运行过早。翻译应在 init 操作或之后加载。 请查阅调试 WordPress来获取更多信息。 (这个消息是在 6.7.0 版本添加的。) in /usr/share/nginx/html/shajisoft_wp/wp-includes/functions.php on line 6114
在基于ARM(armv5tel)的Linux编译安装rtorrent 0.9.6 - Shajisoft中文版
一个关于简单、实用工具的网站

在基于ARM(armv5tel)的Linux编译安装rtorrent 0.9.6

在NAS(armv5tel)上运行rtorrent 0.9.6

我平时使用的网络文件存储设备是个服役好几年的 Buffalo Linkstation Live。该系统上安装、配置了 Optware。可惜Optware 软件仓库里只提供 rtorrent v0.8.1。这个版本并不支持TLSv1.2,所以无法连接强制使用 TLS v1.2 的HTTPS 服务器。这个帖子介绍如何在上述系统上编译、安装 rtorrent 0.9.6 的大概步骤。编译后的 rtorrent 0.9.6 将支持 TLS v1.2。

前言

这个帖子介绍了如何在NAS上编译、安装rtorrent 0.9.6的大致步骤。假设该系统已经有软件编译工具。

具体来说,我们需要编译如下一些软件包

rtorrent支持其它工具通过XML-RPC协议与之通讯。由于我用不到相应的功能,所以我在编译rtorrent的时候没有包含和XML-RPC相关的代码。

编译步骤

在下面的编译示例中,软件的安装路径都在/opt/local下面的各个子目录中。

automake

libz

进入zlib-1.2.11.tar.gz所在的子目录

OpenSSL

进入openssl-1.1.0g.tar.gz所在的子目录

注意:安装路径的根目录是/opt/local/ssl。同时需要在配置时加上“enable-egd”,要不然,编译curl时会报错。

curl

进入curl-7.59.0.tar.gz所在的目录

libtorrent

进入libtorrent-0.13.6.tar.gz所在的目录

这一步会遇到一些麻烦。编译安装时会出现类似于下面所示的错误

主要原因是所用的编译器gcc 4.2.3版本太旧,而libtorrent代码中用到了一些和原子操作有关的gcc内部函数,只有在gcc 4.3及以后版本中才有。一般来说有两种解决办法:一是换用较新版本的gcc,这需要编译安装另一版本的gcc;再一个解决办法就是找到新版gcc中关于原子操作函数的代码,这需要找到一个文件(linux-atomic.c),编译后使用。在这里这里能获得更多详情。

另外,我们其实可以在编译libtorrent时通过使用“-disable-instrumentation”配置选项来避免编译使用到有问题函数的代码。根据我自己的测试,这样虽然能够编译安装libtorrent,但接下来在编译rtorrent仍然会出错。所以我还是采用了上面提到的第二种方案,也就是,使用linux-atomic.c。

接下来,我们切换到另外一个工作目录,比如~/downloads/linux-atomic

切换回libtorrent-0.13.6目录,在我们开始编译之前,我们需要再做一件事,那就是修改两个源文件,这也是我测试出错后才知道的。需要修改的文件分别是src/utils/instrumentation.h和src/utils/instrumentation.cc。具体需要修改的是:把所有的int64_t换成int32_t,再把所有的PRIi64换成PRIi32。做完这些改动之后,回到libtorrent-3.6/mybuild。如果之前运行过configure命令,记得首先运行“make distclean”,然后才执行如下命令

rtorrent

终于要编译rtorrent主程序了。不过在正式操作之前,首先确保系统上有ncurses的头文件。如果是用Optware,我们需要安装”ncurses-dev”以及”ncursesw-dev”两个包(使用ipkg install命令)

进入rtorrent-0.9.6.tar.gz所在的目录

搞定! 执行/opt/local/bin/rtorrent,或者把/opt/local/bin加入$PATH,就能启动刚刚编译好的rtorrent 0.9.6。这样编译的rtorrent可以连接强制TLSv1.2的HTTPS服务器。请注意rtorrent 0.9.x的配置文件和旧版0.8.x的不兼容,关于rtorrent 0.9.6的配置以及命令等相关信息,请参考rtorrent wiki网页。

下载

在NAS上编译以上软件包非常耗时。所以我把我的NAS上的/opt/local打包后供有需要的朋友试用。打包后的文件可在本站下载。如果硬件兼容,这些编译好的可执行文件极有可能可以直接运行。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注