Linux各发行版及Emacs配置备忘

不定期整理在使用各类linux发行版和Emacs时的配置,以及遇到的各类问题的解决方案。

Fedora

Mysql5.1以上版本中文编码

  • 在mysql中输入show variables like 'character%';查看编码配置,此时有某行为Latin1
  • 编辑/etc/mysql/my.cnf(或在/etc/my.cnf),为各部分增加或修改为
1
2
3
4
5
6
7
8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect='SET NAMES utf8'(或SET NAMES 'utf8'
[mysql]
default-character-set=utf8
  • 重启mysql,服务映射为mysqld,sudo service restart mysqldsudo /etc/init.d/mysql restart

apache服务器配置

  • 编辑~/work/program/apache-2.4.17/conf/httpd.conf
  • 将其中的#Listen 12.34.56.78:80下面一行的Listen 80改成监听端口,如8080
  • 向下找到User和Group两项,在终端输入groups可以看到当前用户和所属群组,修改为当前用户及群组
  • 向下找到ServerName,改为IP地址,如127.0.0.1:8080,通过其访问apache
  • 向下设置DocumentRoot,为网站所在目录,访问权限修改为Require all granted(全部允许)

开机挂载非EXT分区

  • fedora的分区配置在/dev/下
  • 在/mnt/下新建文件夹如Professional,fdisk -l查看所有分区
  • 如对应分区为/dev/sdb4,则mount /mnt/Professional /dev/sdb4
  • 编辑/etc/fstab,在最后加入/dev/sdb4 /mnt/Profession ntfs iocharset=utf8, umast=0 0 0,ntfs随分区格式改变

sqlite3API编译

  • gcc sqlite3.c test.c -lpthread -ldl生成a.out。

Ubuntu

安装Topcoder

  • 配置java环境,apt-get install java,或者到Java SE下载最新的jdk。
  • 点此下载Topcoder的客户端,下载ContestAppletProd.jnlp。
  • 安装javaws,并启动ContestAppletProd.jnlp。sudo apt-get install javawsjavaws ContestAppletProd.jnlp
  • 制作Topcoder桌面启动器:cd /usr/share/applications/sudo vi TopCoder.desktop,选取png图片作为启动器图标,保存在/path/to/TopCoder/TopCoderIcon.png,将以下内容保存,两个地址为绝对地址。
1
2
3
4
5
6
7
8
    [Desktop Entry]
    Version=1.0
    Name=TopCoder
    Exec=javaws /path/to/TopCoder/ContestAppletProd.jnlp
    Terminal=false
    Icon=/path/to/TopCoder/TopCoderIcon.png
    Type=Application
    Categories=Development
  • 安装插件,在这里下载TZTester、CodeProcessor和FileEdit。CodeProcessor对Python不支持。
    • 登录Arena后,选择”Options”→”Editors”,调出新窗口,点击”Add”,在”name”栏填”FileEdit”,”EntryPoint”栏填”fileedit.EntryPoint”,路径浏览选择”FileEdit.jar”所在位置,OK保存。
    • “options”→”Editors”,调出新窗口,点击”Add”添加全部三个文件,包括 “FileEdit.jar”。此次”name”栏填”CodeProcessor”,”EntryPoint”栏填 “codeprocessor.EntryPoint”,路径栏浏览三个文件的位置。
    • 选择”CodeProcessor”作为”Default Editor”,即在前面的两个白色的括号中的第一个打勾。
    • 选定”CodeProcessor”(高亮显示),按 “Configure”。在”Editor EntryPoint”栏键入”fileedit.EntryPoint”,在 “Processor Class”栏键入 “tangentz.TZTester”,按 “Verify”,弹出窗口检查是否全部 “found”。点击后面的”configure”,选中”Write the problem description using HTML”,将”File Extension”改为”html”。在”Enter directory read/write problems to:”处填上编写程序文件的绝对路径。

安装matlab

  • sudo mkdir /media/matlab/sudo mount -o loop /path/to/matlab.iso /media/matlab挂载iso镜像。
  • cd到挂载的镜像中,./install开始图形界面安装。使用/media/matlab/crack/下的序列号。
  • 安装完成后复制crack下的libmwservices.so到matlab安装目录下的bin/glnxa64。sudo cp /path/to/libmwservices.so /path/to/matlab-install-place/bin/glnxa64/
  • 进入matlab安装目录下的bin文件夹,./activate matlab对matlab激活,选中crack下的license激活。
  • apt-get安装matlab-support,否则打开matlab闪退。matlab-support会把matlab自动加入环境变量,并生成桌面启动器。

修改环境变量

  • 修改系统环境变量sudo vi /etc/environment,在PATH=末尾添加:/path/to/your/dirsource /etc/environment生效。
  • 修改当前用户环境变量sudo vi ~/.bashrc,在末尾添加export PATH=/path/to/your/dir:$PATHsource ~/.bashrc生效。

安装LaTex

  • sudo apt-get install texlive-full
  • sudo apt-get install texmaker
  • 安装中文字体支持sudo apt-get install latex-cjk-all

hexo等工程需要更新nodejs

  • sudo apt-get install curl
  • curl --silent --location https://deb.nodesource.com/setup_5.x | sudo bash -
  • sudo apt-get install nodejs

安装libpcap库

  • 最新版本http://tcpdump.org/release
  • 解压后进入目录,./configure过程可能缺少flex,之后make过程可能缺少yacc(sudo apt-get install -y byacc),均需安装。
  • make install后运行二进制文件会提示缺少链接库,需从/usr/lib/x86_64-linux-gnu下拷贝libpcap.so.1.x.x并重命名为libpcap.so.1保存至/usr/lib下。

为Firefox安装Adobe Flash Player

  • https://get.adobe.com/cn/获取.tar.gz格式的安装包。
  • 解压install_flash_player_11_linux.x86_64.tar.gz到某目录下,得到libflashplayer.so,将该文件复制到Firefox的插件目录下,通常在/usr/lib/mozilla/plugins/,复制后chmod 777。
  • 将解压出来的usr目录下所有内容拷贝到系统usr目录下,cp -r ./usr/* /usr/

开机挂载非EXT分区

  • Ubuntu 12.10后挂载的分区记录在/dev/下,分区默认挂载点在/media/<username>/<device>
  • /media/<username>下新建文件夹如Professional,fdisk -l查看所有分区
  • 如对应分区为/dev/sdb4,挂载到Professional,则mount -t fstype /dev/sdb4 /media/forec/Professional。挂载点可变。-t指定挂载的文件系统类型,常用的有
    • minix Linux最早使用的文件系统。
    • ext2 Linux目前的常用文件系统。
    • msdos MS-DOS 的 FAT。
    • vfat Win85/98 的 VFAT。
    • nfs 网络文件系统。
    • iso9660 CD-ROM光盘的标准文件系统。
    • ntfs Windows NT的文件系统。
    • hpfs OS/2文件系统。Windows NT 3.51之前版本的文件系统。
    • auto 自动检测文件系统。
  • 可将经常使用的设备写入文件/etc/fastab,以使系统在每次启动时自动加载。mount加载设备的信息记录在/etc/mtab文件中。使用umount命令卸载设备时,记录将被清除。
  • sudo blkid查看分区UUID,编辑/etc/fstab,在文件末尾加入UUID=********** /media/forec/Professional ntfs defaults 0 1,ntfs随分区格式改变

误修改 /etc/profile 并更新

  • export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 恢复初始并修改错误的 profile 文件。

安装Google Chrome

  • 可从此处下载Chrome,或使用wget下载,32位地址为https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb,64位地址为https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  • 下载完成后解包安装,sudo dpkg -i google-chrome-stable_current_amd64.deb,可能出现缺少依赖项类的error。
  • sudo apt-get -f install,处理error并安装chrome。
  • 从终端输入google-chrome link_you_want可从chrome访问网址,或从启动器启动。

Emacs

Golang的代码跳转和补全

  • 在emacs24中安装go-mode,可通过ELPA或根据链接中的介绍手动安装。
  • 在emacs24中安装auto-complete插件。
  • 设置环境变量GOPATH和GOBIN,GOBIN可设为/usr/local/bin
  • 安装godef,go get github.com/rogpeppe/godefsudo go install github.com/rogpeppe/godef,godef也可从此处获取。代码释义为M-x godef-describeC-c C-d,代码跳转为M-x godef-jumpC-c C-j,代码返回为M-*
  • 安装gocode,go get github.com/nsf/gocodesudo go install github.com/nsf/gocode
  • 修改.emacs,增加load-path(add-to-list 'load-path "~/.emacs.d/path/to/load-path")
  • 将文件$GOPATH/github.com/nsf/gocode/emacs/go-autocomplete.el拷贝到$load-path目录下
  • 修改.emacs
1
(require 'go-autocomplete)
(require 'auto-complete-config)
(ac-config-default)
  • 修改.emacs,使保存文件时gofmt:(add-hook 'before-save-hook #'gofmt-before-save)

颜色关键词高亮与背景色

  • 安装rainbow-mode,可从此处下载,或在melpa stable下载。
  • .emacs中增加hook使默认激活该模式,或启动后M-x rainbow-mode激活。
1
2
3
(add-to-list 'load-path "~/.emacs.d/path-to-rainbow-mode/")
(require 'rainbow-mode)
(add-hook 'prog-mode-hook 'rainbow-mode)

Markdown-mode

1
2
3
4
5
6
7
8
(autoload 'markdown-mode "markdown-mode"
"Major mode for editing Markdown files" t)

(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))
(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))

(autoload 'gfm-mode "gfm-mode"
"Major mode for editing GitHub Flavored Markdown files" t)

(add-to-list 'auto-mode-alist '("README\\.md\\'" . gfm-mode))

拼写检查

  • 参考
  • flyspellflycheck 是 Emacs 用于拼写检查的前端,配合 Aspellispell 或者 hunspell 工作。
  • Linux 下可下载 Aspell 的源码,直接 make 并 install 即可。安装后需安装所需的 词典
  • Windows 下需使用二进制版本安装(msys2安装的aspell 会占用大量 CPU 并卡住)。当前(2017.2)最新的 Aspell Win32 版本,安装 Aspell 后再安装对应词典,词典会默认装载到 Aspell 安装目录下。
  • Flyspell 认为拼写检查程序为 ispell,需向 .emacs.spacemacsuser-init 中添加 (setq-default ispell-program-name "aspell")。重启后可用 M-x flyspell-mode 启动。
  • 实时检查会拖慢 Emacs 的速度,最好在平时关闭 flyspell,等到待检查部分完成后,将该部分 mark 起来,并使用 M-x ispell-region。要对整篇文章进行检查,可使用 M-x ispell-buffer 进行人机交互的单词检查。人机交互时常用的命令包括:
    • <SPC>:跳过当前单词(在 Spacemacs 中也是单纯的空格而非 M-m
    • r new <RET>:拥新输入的单词替换拼写错误的单词。
    • R new <RET>:拥新输入的单词替换拼写错误的单词,并且 flyspell 会询问是否替换掉文章中其他地方出现的类似错误。
    • a:在当前区域中将提示的拼写错误作为正确的拼写。
    • A:在当前 buffer 中将提示的拼写错误作为正确的拼写。
    • i:将当前单词插入个人字典中,此后 Aspell 会将其当作正确的单词对待。
    • u:插入当前单词的小写形式到字典中。
    • x:退出单词拼写检查并将光标返回拼写检查开始前的位置。
  • Emacs 拼写部分手册

其它

  • C-x * c 启动计算器(逆波兰),C-x * t 打开计算器帮助。

Spacemacs 配置

  • Spacemacs 的配置多在 .spacemacs 文件中,其中 dotspacemacs-configuration-layers 中代表启动时加载的 layer,例如 c++ 则添加 c-c++
  • user-init 中加载个人在 EMACS 启动前需要的配置项。

个人启动项配置

  • (global-linum-mode 1):始终开启行号,如果当前 EMACS 较卡,则可 M-x linum-mode 关闭行号,会略加快速度。
  • 启动 c++ layer:
1
(setq-default dotspacemacs-configuration-layers
     '((c-c++ :variables
           c-c++-default-mode-for-headers 'c++-mode)))
(setq-default dotspacemacs-configuration-layers
     '((c-c++ :variables c-c++-enable-clang-support t)))
  • 解决 Flyspell 模式报错(需先在 msys2 中安装 aspellaspell-en 字典,但尽量从官网下载 Win32 版本的 aspell 和字典,msys2 安装的 aspell 有时会卡死):
1
(setq-default ispell-program-name "aspell")
(ispell-change-dictionary "american" t)

参考资料:

原创作品,允许转载,转载时无需告知,但请务必以超链接形式标明文章原始出处(https://forec.github.io/2016/02/29/bugs-for-using-linux/) 、作者信息(Forec)和本声明。

分享到