苟利国家生死以,岂因祸福避趋之

0%

2018年6月4日发布

最新版本的 TensorFlow 要求 GLIBC 2.17 以上,尽管推荐做法是找一台最新系统的机子,但是有时候系统的类型不是由自己决定的,通常又没有root权限,又想在所有机子上都能运行 TensorFlow 。

刚好手里有一个超算账号,系统是 Red Hat 4.4.7 ,GLIBC 版本是 2.12 ,就以此为例,安装CPU版本的TensorFlow(反正没有权限也安装不了GPU版本需要的驱动)。


一、用 Anaconda 3 安装 TensorFlow 1.8

1.安装 Anaconda 3

Linux软件安装②|Anaconda3

2.创建 TensorFlow 环境

conda create -n tensorflow pip python=3.6
#Proceed ([y]/n)? 输y
source activate tensorflow #激活环境
pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple/
#这两天由于众所周知的原因,Google官方的镜像又下载不了了,所以这里用了清华大学的镜像

二、安装 gcc

这时候打开 Python ,执行 import tensorflow ,提示:

ImportError: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.7’ not found

conda install -c psi4 gcc-5 
#Proceed ([y]/n)? 输y
LD_LIBRARY_PATH=$HOME/anaconda3/envs/tensorflow/lib:$LD_LIBRARY_PATH

再此运行 Python,不再提示这个问题。

三、安装 GLIBC 2.21

但是提示:

ImportError: /lib64/libc.so.6: version `GLIBC_2.16’ not found

本来应该安装GLIBC 2.17,但是我发现从2.16到2.19都有个bug,不能运行Python 3.6。于是我们安装GLIBC 2.21。

1.下载GLIBC 2.21并编译GLIBC 2.21

wget http://mirror.rit.edu/gnu/libc/glibc-2.21.tar.gz
tar zxvf glibc-2.21.tar.gz
mkdir glibc-2.21-build glibc-2.21-install
cd glibc-2.21-build
../glibc-2.21/configure --prefix=`readlink -f ../glibc-2.21-install` 
make && make install

然后就报错了:

checking version of as… 2.20.51.0.2, bad checking version of ld… 2.20.51.0.2, bad These critical programs are missing or too old: as ld

仔细看看INSTALL文件,要求GNU ‘binutils’ 2.22 or later,但系统只装了2.20。

2.下载并编译binutils 2.30

wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.30.tar.gz
tar zxvf binutils-2.30.tar.gz
cd binutils-2.30
./configure --prefix=`readlink -f ../binutils-2.30-install` 
make && make install
#加入环境变量
PATH=$HOME/software/binutils-2.30-install/bin:$PATH

3.重新编译glibc 2.21

cd glibc-2.21-build
../glibc-2.21/configure --prefix=`readlink -f ../glibc-2.21-install` 
make && make install

Warning: ignoring configuration file that cannot be opened: … /software/glibc-2.21-install/etc/ld.so.conf: No such file or directory

将/etc 目录的ld.so.conf复制到指定目录后重新安装:

cp /etc/ld.so.conf ../glibc-2.21-install/etc/
make install

安装成功。

四、运行TensorFlow

source activate tensorflow
$HOME/software/glibc-2.21-install/lib/ld-2.21.so --library-path $HOME/anaconda3/envs/tensorflow/lib:$HOME/software/glibc-2.21-install/lib:/lib64:$LD_LIBRARY_PATH `which python`

在Python内输入:

# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

b’Hello, TensorFlow!’

运行成功。我们可以运行的命令记录在.bashrc中:

echo 'alias tf='"'"'$HOME/software/glibc-2.21-install/lib/ld-2.21.so --library-path $HOME/anaconda3/envs/tensorflow/lib:$HOME/software/glib-2.21-install/lib:/lib64:$LD_LIBRARY_PATH `which python`'"'">>$HOME/.bashrcsource $HOME/.bashrc

即可用 tf 代替装了 TensorFlow 的 Python。

2018年6月1日发布

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh
#清华大学镜像站可以显著提升下载速度,尤其是教育网网络环境
bash Anaconda3-5.2.0-Linux-x86_64.sh

Please, press ENTER to continue

按Enter

Do you accept the license terms? [yes|no]

输yes

[/home/jzzeng/anaconda3] >>>

这里需要问是否需要修改安装目录,如需修改则输入安装目录,如不修改则按回车

然后等待一段时间

Do you wish the installer to prepend the Anaconda3 install location to PATH in your /home/jzzeng/.bashrc ? [yes|no]

yes

Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]

no

这样anaconda3就安装好了,接着启用清华大学镜像,提升下载速度:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

2018年5月29日发布

#超算上都没有root权限,所以只能自己编译
wget https://jaist.dl.sourceforge.net/project/openbabel/openbabel/2.3.1/openbabel-2.3.1.tar.gz #下载
tar -vxzf openbabel-2.3.1.tar.gz #解压
mkdir openbabel openbabel-build #创建目录
installprefix=$(pwd)/openbabel #设置安装目录
cd ../openbabel-build #进入构建目录
cmake ../openbabel-2.3.1 -DCMAKE_INSTALL_PREFIX=$installprefix
make && make install #编译

#在.bashrc中设置环境变量
echo 'export PATH=$PATH:'$installprefix'/bin'>>$HOME/.bashrc
echo 'export BABEL_DATADIR='$installprefix'/share/openbabel/2.3.1'>>$HOME/.bashrc
source $HOME/.bashrc #应用环境变量

#可以尝试命令:obabel -:CC -opdb -O xx.pdb
#看看是否安装成功

2018年5月6日首发微信公众号

之所以不用学校的思科Anyconnect VPN服务,是因为其谜一般的稳定性:

学校VPN真辣鸡

16:38:46    Connected to vpn-ct.ecnu.edu.cn.
16:38:48    Reconnecting to vpn-ct.ecnu.edu.cn...
16:38:50    Establishing VPN - Examining system...
16:38:50    Establishing VPN - Activating VPN adapter...
16:38:50    Establishing VPN - Configuring system...
16:38:51    Establishing VPN...
16:38:51    Connected to vpn-ct.ecnu.edu.cn.

我也不是想要批判一番,但是这个Anyconnect频繁掉线,频繁重连,连接期间不能访问网络,稳定性也太差了吧?而且还不能自己设置分流,所有流量都要从学校网络走。


原料:公网机器一台(以腾讯云CentOS服务器为例)、内网机器一台(以Windows为例)、域名一个(指向公网机器)


公网机器

ssh连接公网机器,安装ngrok:

domain="ngrok.njzjz.win" #换成自己的域名
yum install gcc golang
git clone https://github.com/mamboer/ngrok.git
cd ngrok
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$domain" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$domain" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
\cp rootCA.pem assets/client/tls/ngrokroot.crt -f
\cp device.crt assets/server/tls/snakeoil.crt  -f
\cp device.key assets/server/tls/snakeoil.key -f
make release-server
export GOOS="windows" GOARCH="amd64" && make release-client #如果内网机器是linux系统,将windows换成linux
/root/ngrok/bin/ngrokd -domain="$domain" -httpAddr=":6060" -httpsAddr=":6061" -tunnelAddr=":6062" #启动ngrok服务

内网机器

将公网机器的ngrok/bin/windows_amd64/ngrok.exe复制下来:

从shadowsocks/libQtShadowsocks下载Shadowsocks Windows服务器端(如果无法下载自己想办法解决),可以放到同一个文件夹内:

在同一文件夹编写config.json:

{
    "server":"0.0.0.0",
    "server_port":10086,
    "local_address":"127.0.0.1",
    "local_port":10086,
    "password":"password",
    "timeout":600,
    "method":"aes-256-cfb",
    "http_proxy": false
}

以及ngrok.yml:

server_addr: "ngrok.njzjz.win:6062"
trust_host_root_certs: false
tunnels:
  ss:
    remote_port: 38382
    proto:
      tcp: 10086

现在应该有这些文件:

打开命令提示符,跳转到这个文件夹中,然后:

shadowsocks-libqss -c config.json -S

再打开一个命令提示符:

ngrok -log=ngrok.log -config=ngrok.yml start ss

显示online就说明连接成功了。


自己的机器,打开shadowsocks(略去下载过程),添加服务器:

shadowsocksR可以单独设置一个端口:

这样就可以在Switchy Omega配置:

并实现分流:

就可以访问不对外网开放的网站了:

以及下论文啥的:

Ubuntu子系统内则可以使用proxychains,使用代理连接学校内网的服务器:

当然手机上也能用:

速度受公网服务器带宽的影响。

参考资料

1.使用ngrok+shadowsocks穿透内网校外也能畅快看论文 - 庭上杨柳 https://xingtingyang.com/866.html

2.windows 下搭建shadowsocks 服务端 - CSDN博客 https://blog.csdn.net/wyvbboy/article/details/52540658

2018年4月8日首发微信公众号,文案:王琛,摄像:王野,编辑:曾晋哲,出品:华东师范大学化学与分子工程学院团委学生会主席团

2018年4月2日中午12时,化学与分子工程学院团委学生会主席团午餐会在闵行校区化学楼团委办公室成功举办。化学与分子工程学院学生会主席王琛,团委副书记曾晋哲,学生会副主席刘东旭、王野、严晓港莅临午餐会现场。

活动前,筹备工作紧锣密鼓,分工合理。王琛、王野、刘东旭等人在物美大卖场等地采购活动食材,曾晋哲采购活动耗材,严晓港负责搬运活动用品。并不宽阔的团委办公室里,择菜、洗菜、切菜、摆菜,一道道工序沉稳进行,紧张而有序。

午餐会伊始,学生会主席团全体成员在活动现场进行合影,翻腾着热气的沸水预示着本次活动的火热。随着鱼丸等食物的出锅,午餐会正式开始,大家畅所欲言。学生会主席王琛带领大家了解时事政治,学习中央先进精神。牛肉、羊肉的出锅,将午餐会气氛推向高潮。随后大家就经济与哲学、当代青年发展、学联改革等当下热点问题进行讨论,各抒己见,不乏鞭辟入里之言,满是青年热血与活力。

午餐会是我院学生会的一项创新活动,多年来,我院学生会坚持想学生所想,做学生所做,不断创新活动形式,以同学们喜闻乐见的方式,引领青年思想前进,做好服务学生的本职工作,争取自身更大的进步。

华东师范大学化学与分子工程学院团委学生会

二零一八年四月二日

2018年3月20日首发化学e+公众号

化学e+小程序于2017年3月30日发布。今天,化学e+小程序发布即将满1周年,累计用户数达到1万

随着互联网和智能手机的普及,人们获取信息、接受教育的渠道越来越多。在不同层次的化学教学中,掌握化学元素知识尤为重要,它是学习一切化学知识的基础。为了更好地帮助众多学习化学的同学加强对元素记忆和理解,我们成功开发出支持多平台的“化学e+(跨平台)”,在元素记忆的基础上,兼有质量计算及帐号管理等功能,取得了一定的成果。化学e+兼容更多智能设备及操作系统,希望得到更多化学学习者的关注和喜爱。

此前,《化学e+》已荣获2017年华东师大本科生计算机应用能力大赛一等奖、2017年(第九届)上海市大学生计算机应用能力大赛二等奖、2017年(第10届)中国大学生计算机设计大赛二等奖。PC版已获《中华人民共和国国家版权局计算机软件著作权登记证书》(登记号:2017SR649718)。

党的十九大报告八次提到了互联网相关内容,指出要推动互联网、大数据、人工智能和实体经济深度融合。今后,化学e+团队将推动成果转化,利用成果进行创业,争取获得新的辉煌。

2018年2月7日首发知乎专栏、微信公众号

Seafile,是“开源的私有云存储”。

近日在家里的Windows台式机上的Ubuntu子系统配置了Seafile。为啥不直接拿台Linux电脑?当然是因为穷,交不起两台电脑的电费……

Ubuntu子系统,需要Windows 10 专业版 版本 1709以上,在控制面板->程序->启用或关闭 Windows 功能中打开适用于 Linux 的 Windows 子系统,然后在Microsoft 应用商店中下载Ubuntu即可。


安装

首先需要下载好Seafile的Linux 服务器端:下载 - Seafile​www.seafile.com

或者

<span class="nb">cd</span>
mkdir seafile
<span class="nb">cd</span> seafile
wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.2.5_x86-64.tar.gz
tar -vxzf seafile-server_6.2.5_x86-64.tar.gz
<span class="nb">cd</span> seafile-server_6.2.5

接着装好Python和SQLite:

sudo apt-get update
sudo apt-get install python
sudo apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 ffmpeg python-pip sqlite3
pip install pillow moviepy

安装并启动:

./setup-seafile.sh
./seafile.sh start
./seahub.sh start

浏览器打开http://localhost:8000/,应该就可以看到Seafile界面。


防火墙设置

在高级安全 Windows Defender 防火墙中,创建入站规则,允许8000和8082两个端口通过。


设置开机启动

由于关掉Bash后,里面所有进程都会结束,所以我们要让Seafile在后台静默运行。

首先创建seafile.sh:

<span class="c1">#/home/njzjz/seafile.sh</span>
<span class="nb">cd</span> /home/njzjz/seafile/seafile-server-6.2.5/ <span class="c1">#根据实际位置修改</span>
./seafile.sh start
./seahub.sh start
<span class="nv">$SHELL</span> <span class="c1">#挂起脚本进程</span>

然后在Windows 系统中创建Seafile.vbs:

<span class="k">Set</span> <span class="n">ws</span> <span class="o">=</span> <span class="n">CreateObject</span><span class="p">(</span><span class="s">"Wscript.Shell"</span><span class="p">)</span>
<span class="n">ws</span><span class="p">.</span><span class="n">run</span> <span class="s">"bash -c 'sh /home/njzjz/seafile.sh'"</span><span class="p">,</span><span class="n">vbhide</span>

最后,在计划任务中让Seafile.vbs开机自动启动即可。


设置外网访问

首先确定有宽带有公网IP,如果没有,找运营商客服要。之前江苏电信把我的IP改成了100开头的内网IP,后来在微信上的江苏电信客服那里开通了一个名为“公网IPv4”的业务。

如果开通不了,就用ngrok穿透……这篇文章就不说了。

在路由器中设置好端口转发,8000和8082端口都要,8000端口用来打开网页(因为80端口被中国的运营商屏蔽了),8082端口用来上传和下载文件:

配置DDNS服务,这里推荐Dynu,一个有中文的、免费的、非常稳定的DDNS服务商:

当然可以把自己的域名再设置CNAME记录。这时,在任何网络,打开http://cloud.njzjz.win:8000/就可以使用了。


Seafile有Windows、Mac、Linux、iOS、Android客户端,最良心的就是Linux客户端了。Onedrive因为没有Linux客户端,网页版又不能通过正常手段访问(IPv6下都不行),所以在Ubuntu下完全无法使用。

本文2018年1月5日首发微信公众号

2018年1月5日晚,光华书院学生会科技创新部指导团新年聚餐在呷哺呷哺宝龙广场店成功举行。科技创新部高级指导团成员曾晋哲,指导团成员程宇环、李育欣、刘玥洋、王若君出席了本次活动。

活动开始后,指导团的成员们先就近日的生活情况、学习情况、感情情况进行了深入交流,现场不时发出阵阵笑声。接着,指导团成员开始用餐,热气腾腾的火锅很快散发出诱人的香味,指导团成员大快朵颐,欢声笑语充满了整个餐桌。最后,指导团就科技创新部下学期举办的活动进行了讨论,并根据实际情况,调整了部分活动的时间和形式,本次活动圆满结束。

本次活动促进了光华书院学生会科技创新部指导团成员的感情交流,增强了科技创新部指导团的凝聚力。在指导团成员的有力指导下,相信未来科技创新部会越来越棒。

2017年12月8日首发微信公众号

“这是暑假的存文,今天微信放开了原创声明和留言,因此发出来看看效果” 如果你有多个网盘,那么一定有在不同网盘之间传输文件的需求,下面介绍使用MultCloud在不同网盘间传输文件的方法。

01

注册 ①打开MultCloud注册页面:https://www.multcloud.com/sign?method=up&tc=51feffd65a7ee64f015a93b6656b1ae2 ,输入用户名、密码等信息,点击Create Account注册:

1.png

②页面提示检查邮件,在邮箱中打开发过来的激活邮件,点击Activate Account激活:

2.jpg

3.jpg

③激活成功,点击sign in开始登陆:

4.png

02

登陆与绑定 ①输入邮箱和密码,点击Login登陆:

5.png

②进入主界面,点击左上角“添加云盘“:

6.jpg

③选择一个你想添加的网盘,这里我们以百度网盘为例,还可以添加支持FTP或WebDAV的空间:

7.jpg

④点击“添加百度云盘“:

8.png

⑤登陆百度账号:

9.jpg

⑥授权成功,这里指出的是,百度网盘对第三方应用有限制,只能读写指定的文件夹:

10.png

⑦以步骤②-⑤再添加一个网盘。

03

在两个网盘之间传输数据 ①点击“云传输“:

11.png

②选择传出文件夹和传入文件夹,例如,我把“Onedrive\文档\学习\计算化学”中的文件传输至“百度网盘\我的应用数据\lin1118\Example”,点击“现在传输”:

12.png

③MultCloud开始传输文件,如果文件较大,可以关闭浏览器,默默等它传输完毕,下为传输成功的截图:

13.png

除了传输文件外,MultCloud还有下载、分享文件的功能。