cmake 学习笔记

前置技能点:

gnu make

linux下.so,.a,.o文件

cmake是一个工具,也可以看成一门语言。

学习cmake最大的障碍在于看不懂全是大写的英文

学习cmake主要参考了《cmake practice》

不过感觉作者有些啰嗦…不重要的东西讲了半天,重要的东西却一带而过。。。表述得也不是特别流畅。。。但是还是感谢作者的分享吧orz…

继续阅读“cmake 学习笔记”

mysql 出现 innoDB: Cannot allocate memory for the buffer pool 的解决办法

emmm,博客的数据库又挂了。

看了下log,发现innoDB: Cannot allocate memory for the buffer pool 的error

查了下,貌似是内存不够了? orz

用free 命令看了下,阿里云ecs貌似是默认没有swap分区的。

于是参考云服务器 ECS Linux SWAP 配置概要说明 

设置了swap分区。看下还会不会挂orz

Linux 两个文件求交集、并集、差集

一、交集

sort a.txt b.txt | uniq -d

二、并集

sort a.txt b.txt | uniq

三、差集

a.txt-b.txt:

sort a.txt b.txt b.txt | uniq -u

b.txt – a.txt:

sort b.txt a.txt a.txt | uniq -u

四、相关的解释

使用sort可以将文件进行排序,可以使用sort后面的玲玲,例如 -n 按照数字格式排序,例如 -i 忽略大小写,例如使用-r 为逆序输出等

uniq为删除文件中重复的行,得到文件中唯一的行,后面的命令 -d 表示的是输出出现次数大于1的内容 -u表示的是输出出现次数为1的内容,那么对于上述的求交集并集差集的命令做如下的解释:

sort a.txt b.txt | uniq -d:将a.txt b.txt文件进行排序,uniq使得两个文件中的内容为唯一的,使用-d输出两个文件中次数大于1的内容,即是得到交集

sort a.txt b.txt | uniq :将a.txt b.txt文件进行排序,uniq使得两个文件中的内容为唯一的,即可得到两个文件的并集

sort a.txt b.txt b.txt | uniq -u:将两个文件排序,最后输出a.txt b.txt b.txt文件中只出现过一次的内容,因为有两个b.txt所以只会输出只在a.txt出现过一次的内容,即是a.txt-b.txt差集

对于b.txt-a.txt为同理

C++ Linux下使用popen()执行shell命令

由于需要在Linux平台下,通过cpp获取某个进程所占用的物理内存,得知了这个东西。

感觉还挺厉害的orz..

下面是一段示例代码

 

manjaro(archlinux) 安装 YouCompleteMe

来来回回折腾了好多次,aur直接安装或者手动编译,安装后都无法补全

ycm的log文件是在/tmp目录下的。

发现问题是缺少libtinfo.so.5

解决办法:

参考a资料

比较诡异的是,我把vim配置删掉,就可以补全,以至于之前一直以为是ycm和配置文件中的某个内容冲突。

SLURM 集群环境使用指南

虽然现在感觉这些命令记起来都很容易,但是一段时间不用的话还真怕有些不记得。

sinfo: 查看集群节点的信息,其中state为idle的是空闲的。

squeue: 查看目前的任务队列。

swatch  [ID]  nv  : 动态查看某一个任务的GPU情况。 其中[ID]通过squeue 查看

scancel [ID] : 取消特定ID的任务(注意不要用Kill)

 

传文件到DATAshare目录下时,一定记得要先 chmod -R 777 

tensorboard报错缺少某.so文件的解决办法:

export LD_LIBRARY_PATH=/mnt/lustre/share/cuda-9.0/lib64

archlinux/manjaro 下 安装 qq/tim

参考资料:install qq/tim on linux with wine

wine运行qq不能输入账号

This tutorial introduces how to install QQ/TIM in Linux with Wine, which had been tested on ArchLinux with Wine 2.4.

Prerequisites

Before start, you need to get the latest Wine. I’m not sure whether QQ/TIM can run on lower version of Wine. In ArchLinux, you can easily get the latest Wine using following command:

?

However, in Debian, you need to install Wine with some more steps. You can see this tutorial.

Then, you need to install a helper of Wine, Winetricks. Winetricks is a script to download and install various redistributable runtime libraries needed to run some programs in Wine. To install Winetricks, you can use following command:

 

After that, we need to fix some problems manually caused by Winetricks. According to this Bug Report, we need to download  W2KSP4_EN.EXE from other mirror sites:

Similarly, we need to download  InstMsiW.exe manually:

 

Initialize Wine Environment

To create a 32-bit WINE system, you need to open a terminal and run the following command:

 

Then you need to run  winecfg in terminal and change Windows version to  Windows 7.

Install Core Fonts

Next, we are going to install essential fonts for Wine.

where  corefonts stands for MS Arial, Courier, Times fonts, and  cjkfonts denotes all Chinese, Japanese and Korean fonts and alias.

Install Windows Components

Then, we need to install components which are need by QQ / TIM.

where  msxml6 represents MS XML Core Services 6.0 SP1,  riched20 and  riched30 mean MS RichEdit Control 2.0 and MS RichEdit Control 3.0 respectively, and  vcrun6 is Visual C++ 6 SP4 libraries.

You are supposed to be asked to fill in information during the MSXML6 installation.

Install QQ / TIM

In this section, we are about to install QQ / TIM. We are assume that you have already get installers from official website. Run your installer with following command:

In this tutorial, we use TIM installer as an example:

Please be patient and ignore following error message in terminal:

1
[8:142:0322/131343:4128351:ERROR:qd_helper.cpp(234)] 328 Status: 2

An instance of QQ / TIM will automatically started after installation finished.

Due to security check of QQ / TIM, QQ cannot start normally when you restart your PC. We need to apply a patch to remove security check components. You can download this patch from this link or search “QQ安全校验补丁” from the Internet.

After unzip this patch, use following commands to apply this patch:

 

Create Shortcut

Now you can start QQ using following commands:

 

In order to start up QQ / TIM, you can create a desktop entry in  /usr/share/applications/TIM.desktopas follows:

 

Enjoy!

 

遇到了无法输入账号的bug(但是可以输入密码)

解决办法是:

 

libgfortran.so.4 missing under archlinux

。。。哭了哦。。终于解决了这个bug

参考资料:

libgfortran broken?

libgfortran=3.0 should not be install with numpy <= 1.9

[SOLVED] libgfortran.so.3:cannot open shared object file: No such file

Replacing gcc-libs-libs with gcc-multilib [arch

conflict with gcc-libs and gcc-libs-multilib on latest update

一开始以为是anaconda相关。。。搞了半天。。。

然后又按照第一个资料里。。。试图把libgfortran用libgcc替代。。

发现删掉libgfortran会同时删掉scripy…

然后又觉得。。或许是scripy有什么问题?

查了一会也没发现什么。。。

后来又想也许是dlib的问题?

看了下dlib的github,说是pip 的安装方式可能存在问题,我又用源码安装了一边,问题依旧….

然后本来打算睡觉了。。。

突然梦到。。。也许是arch的问题呢。。。

一搜果然是。。。MGJ。。。这bug出现的时间。。。貌似是2017年5月30号以后。。。(具体参照最后一个资料的日期。。。

而且这。。。谁能想到是arch的锅啊。。。更别说是这么新鲜的bug…

所以说arch是不是不适合跑深度学习,做科学计算之类的啊orz….

最后说下解决办法:

 

manjaro installation guide

20180214 update:

第一个版本已经比较久了,于是更新一下,顺便写了个脚本orz

 

出于目前对manjaro的依赖,以及没有找到很简单易行的备份系统的方案的原因,决定详细记录一下系统安装的过程,以防哪天系统挂掉了,可以快速恢复。

1.关于更换源

坑点主要在系统默认的源是国外源,如何切换成中国源,网上有很多教程,但这些教程都是针对Arch的,弄来弄去也很不容易搞好,而且胡乱修改会把Manjaro的源破坏掉(不要问我怎么知道的)。
其实网上有个blog的方法很方便,附上连接

就两行命令搞定:

2.安装搜狗输入法

具体为,安装fcitx,安装fcitx-sogoupinyin,安装kcm-fcitx

然后

~/.xprofile 文件中添加如下内容

由于初始安装系统时选择的是英文,在安装搜狗输入法之前先安装了chrome,导致在chrome中无法输入中文(而在firefox中可以),解决办法时,删除掉.config中google-chrome文件夹即可

3 添加archlinuxcn源

/etc/pacman.conf 文件末尾添加以下两行:

之后安装 archlinuxcn-keyring 包以导入 GPG key。

4 添加arch4edu源

在/etc/pacman.conf 文件末尾添加

 

5 安装常用软件()

  • guake
  • fish
  • vim
  • shadowsockq-qt5
  • google-chrome
  • wget,aria2
  • franz,telegram-desktop
  • remarkable (markdown编辑器,轻量级)

 

 

6.proxychains-ng

 

就很气,配置文件经常失效,再记录一份好了

 

7 vim 配置

 

8修改键盘映射

9安装中文字体:

 

  1. anaconda with fish

anaconda 默认的环境变量是bash,对于fish,需要修改~/.config/fish/config.fish 如下

 

11 youcompleteme

 

12.关于vim 剪贴板的问题

How do I use the system clipboard with Vim in Arch Linux?

uninstall vim,install gvim,and use vim instead of gvim

 

13 vim 配色文件molokai.vim(透明背景修改

 

vim下python 的配置

由于最近要做数字图像处理的大作业,以及之后一段时间,估计写python多一些,所以打算花些时间配置下vim.

1. 一键执行

其实之前一直有的。。不过没有效果,就没有管。发现问题是,python对应的filetype为”python”,而不是”py”

2.代码补全

不想折腾了。。既然ycm也支持python,就先用用看好了。。不行再换别的。

放一段ycm for python的配置文件

3. 语法检查

Syntastic大家都知道了。。。。看到了异步检测插件ALE,打算试一下。

ale_github

需要注意的是,这个插件需要vim 8.0+的特性。。。

放一波配置文件

4. 编程提示(jedi-vim)

 据说是vim写python的神器。。。装来看看。。。

据说默认配置就够了,先不折腾了

 

 

 

 

 

 

 

vundle error detected while processing function

好久没装新插件了,最新要配下python,发现安装时候满屏的错误。。。

最后发现是shell的锅,因为我用的是fish,在.vimrc文件中添加

即可。

以及说下可能的其他原因,虽然我没遇到

  • 对于arch系,可能从aur中安装的版本out ot data
  • 可能没有把.vimrc中vundle的配置从set rtp+=~/.vim/bundle/vundle更新成set rtp+=~/.vim/bundle/vundle.vim
  • 可能项目名称用了” 而不是’

 

 

以及顺手查了下bundle和Plugin的区别。。。

简单来说。。Plugin是新写法,bundle是正在被淘汰的写法,不过由于兼容性的原因,仍然在使用。。。

以后使用plugin的写法就好。

参考资料

 

安装win10后导致grub 引导缺失的解决办法

我之前是单系统manjaro,装了win10以后,grub menu直接消失不见…

ubuntu 的live cd进去,用神器boot-repair也没作用…

最后的解决办法是:

 

1. 用随便一个什么linux的live cd,进入live模式

2. 使用某种方法(fdisk?gparted?自己记得?)确认linux安装在哪个分区(如果有安装了多个,应该以最后一个为准)我的linux安装在了sda5

3. 挂载linux分区:

4.挂载其他必要的文件夹

5:chroot进你的系统

6.重装并更新grub引导

 

完美解决!

archlinux安装记

实在不忍心x1c吃灰。。。

打算装个arch玩。。。

第一次失败了,原因是忘记配置引导相关…

第二次就成功了…

教程满大街都是就不再写了….

似乎装好以后,和manjaro区别不大?

有空来更新下配置吧。。。

(越来越觉得折腾linux的时间还不如用来陪妹子…

所以不一定什么时候会更了2333