~ / 文档 / 常用软件的安装与配置

1 GnuPG

几乎所有的 Linux 发行版默认都会自动安装 GnuPG,但 Mac OSX 下需要自己手动安装,这里我采用的是源码编译的方式。 由于采用源码编译,首先我们要安装 Xcode,装好后启动一下,会自动安装 command line tools。

如果要编译 GnuPG 2.x 版本,还需先编译安装下面的类库。

$ curl -O ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.4.tar.bz2
$ curl -O ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-2.4.2.tar.bz2
$ curl -O ftp://ftp.gnupg.org/gcrypt/libksba/libksba-1.3.3.tar.bz2
$ curl -O ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.21.tar.bz2

$ tar xjvf libgcrypt-1.6.4.tar.bz2 -C /usr/local/src/
$ tar xjvf libassuan-2.4.2.tar.bz2 -C /usr/local/src/
$ tar xjvf libksba-1.3.3.tar.bz2 -C /usr/local/src/
$ tar xjvf libgpg-error-1.21.tar.bz2 -C /usr/local/src/

$ cd /usr/local/src/libgcrypt-1.6.4
$ ./configure && make && sudo make install

$ cd /usr/local/src/libassuan-2.4.2
$ ./configure && make && sudo make install

$ cd /usr/local/src/libksba-1.3.3
$ ./configure && make && sudo make install

$ cd /usr/local/src/libgpg-error-1.21
$ ./configure && make && sudo make install

最后编译安装 gnupg,如果版本为 1.x 则不需要上面的类库,下载后要 sha 比对一下,有时翻墙下载的文件会被修改用不了。

$ curl -O ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.20.tar.bz2
$ openssl sha1 gnupg-1.4.20.tar.bz2

$ tar xjvf gnupg-1.4.20.tar.bz2 -C /usr/local/src/
$ cd /usr/local/src/gnupg-1.4.20
$ ./configure
$ make
$ make check
$ sudo make install

装好后就可以从优盘中导入我的私钥和公钥了。导入后记得查看一下。

$ gpg --allow-secret-key-import --import /Volumes/NO\ NAME/secret.gpg.key
$ gpg --import /Volumes/NO\ NAME/public.gpg.key
$ gpg --list-keys
$ gpg --list-secret-keys

参考文档:

2 Java

Linux 下我是通过软链接的方式来切换不同的 JDK 和 JRE 版本,官网下载 相应的版本(通常是 x64 版本)到 /usr/java 目录下。

$ sudo mv ~/Downloads/jdk-7u25-linux-x64.tar.gz /usr/java/
$ cd /usr/java
$ sudo tar xzvf jdk-7u25-linux-x64.tar.gz
$ sudo ln -sf /usr/java/jdk1.7.0_25/ /usr/java/default

相关的环境变量如 JAVA_HOME 单独环境变量文件加载,请参考重装系统时的设置

Mac OSX 下只需 官网下载 相应的 dmg 文件,然后按官方的安装教程进行安装,详细过程见参考文档。安装完成后,使用 java_home 命令运行其它的 JDK 版本:

$ java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

$ /usr/libexec/java_home -v 1.7.0_07 --exec javac -version

通过下面语句删除无用的版本:

$ cd /Library/Java/JavaVirtualMachines/
$ sudo rm -rf jdk1.7.0_07.jdk/

参考文档:

Debian 下默认安装的 jre 可以通过 update-alternatives 删除掉。

$ update-alternatives  --display java
java - auto mode
  link currently points to /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java - priority 1071
  slave java.1.gz: /usr/lib/jvm/java-7-openjdk-amd64/jre/man/man1/java.1.gz
Current 'best' version is '/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'.

$ sudo update-alternatives --remove java /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

参考文档:

3 Git

如果我们已经安装了默认的 Git,现在想通过源码编译升级到最新的版本。首先要 clone 一份 Git 源码到 /usr/local/src 目录下,然后安装编译依赖的软件包。

$ cd /usr/local/src
$ sudo git clone https://github.com/git/git.git
$ sudo yum install curl-devel expat-devel gettext-devel \
                   openssl-devel zlib-devel perl-CPAN

编译安装到 /usr/local/bin 目录下,之前系统默认的 Git 通常被安装在 /usr/bin 目录下。 最后删除系统默认安装的 git,并将当前 session指向新安装的 git,或者重启机器也行。 如果是 Fedora,可能需要安装 vimdiff (vim-enhanced) 命令。

$ cd /usr/local/src/git/
$ sudo make prefix=/usr/local all
$ sudo make prefix=/usr/local install

$ sudo yum erase git
$ hash -r
$ type git

$ sudo yum install vim-enhanced

Mac OSX 下 git 会被包含在 Xcode 中一起被安装,不过版本偏低。要想升级到最新版本, 可以直接下载 dmg 文件,根据里面的 README 说明进行安装。或者通过下面命令进行源码编译安装。

$ mkdir /usr/local/src
$ cd /usr/local/src
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd /usr/local/src/git/
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

$ sudo rm /usr/bin/git*
$ hash -r
$ type git

与 Linux 相比,除了删除默认 git 的语句不同,并且不需要手动安装编译依赖的包,其它的语句没什么区别。 不过每次 app store 升级 xcode,也会同时升级内置的 git ,还需要手动切换到你自己编译的 git,有点麻烦, 我还是老老实实用 Xcode 自带的 git 就好了。

最后将 git 的全局配置文件通过下面的软链接进行加载:

$ ln -sf ~/Projects/gaixie/bitorb/dot.gitconfig ~/.gitconfig

4 Emacs

4.1 Emacs 编译安装

作为我使用频率最高的软件,版本升级一定要及时,但从国内 clone 源码库实在是太慢了,只能通过下载最新的源码包进行编译安装。 如果之前有通过 yum 安装过 Emacs, 要把它先卸载掉,然后从国内的镜像站下载源码包到 /usr/local/src 目录下,并解压缩。

$ sudo yum erase emacs
$ cd /usr/local/src
$ sudo wget https://mirrors.ustc.edu.cn/gnu/emacs/emacs-26.1.tar.gz
$ sudo tar xzvf emacs-26.1.tar.gz

安装一些编译依赖的软件包,我目前使用的只是 Emacs 的大众功能,所以只要求能成功编译就行。

$ sudo yum groupinstall "Development Tools"
$ sudo yum install gtk+-devel gtk2-devel
$ sudo yum install libXpm-devel libpng-devel giflib-devel \
                   libtiff-devel libjpeg-devel
$ sudo yum install ncurses-devel

Debian 8 下如果编译,需要安装下面的依赖包:

$ sudo aptitude install build-essential libncurses5-dev autoconf libgnutls28-dev
# x-win 支持
$ sudo aptitude install xorg-dev libpng12-dev libjpeg8-dev libgif-dev libtiff5 libtiff5-dev

下面进入解压缩后的源码目录,开始编译,安装,最后做一个执行文件的软链接。

$ cd /usr/local/src/emacs-26.1
$ sudo mkdir /usr/local/emacs
$ sudo ./configure --prefix=/usr/local/emacs/26.1
$ sudo make install
$ sudo ln -sf /usr/local/emacs/26.1 /usr/local/emacs/default

以上是 Fedora 下 Emacs 编译安装过程,Mac OSX 我直接从 http://emacsformacosx.com/ 下载最新的 dmg 文件安装。 这个网站的版本更新相当及时,大家评价很高。

4.2 Orgmode 编译安装

下面的操作 Linux 和 Mac OSX 没有区别,先在 ~/Projects/others/ 目录下 clone 最新的源码,注意不要修改 这个路径,它已经被写死到 init-org.el 配置文件中了。

$ cd ~/Projects/others/
$ git clone git://orgmode.org/org-mode.git
$ cd org-mode/
$ make autoloads

4.3 Markdown 配置

和 Orgmode 一样,克隆源码到 ~/Projects/others/ 目录下。

$ cd ~/Projects/others/
$ git clone git://jblevins.org/git/markdown-mode.git

参考文档:

4.4 Groovy 配置

和 org 和 markdown 模式一样,直接克隆源码就行,唯一和官网介绍的方法有点不同的是修改了一下克隆出来的项目目录名。 个人习惯,不喜欢开源项目的目录名有大写字符。

$ cd ~/Projects/others/
$ git clone git://github.com/Groovy-Emacs-Modes/groovy-emacs-modes.git groovy-mode

参考文档:

4.5 Yaml 配置

和 org 和 markdown 模式一样,直接克隆源码就行。

$ cd ~/Projects/others/
$ git clone git://github.com/yoshiki/yaml-mode.git

4.6 Html 配置

Emacs 默认模式只能编辑纯 html 文件,碰到嵌入 javascript 或 css 代码段就不行了, 下面的 multi-web 模式能解决这个问题。

$ cd ~/Projects/others/
$ git clone [email protected]:fgallina/multi-web-mode.git

multi-web 模式对 nodejs, reactjs 开发支持的不好,换一个评价好的 web-mode。

$ cd ~/Projects/others/
$ git clone [email protected]:fxbois/web-mode.git

4.7 Emacs 配置

在前面 Emacs 及各种模式安装完成后,最后做的是 Emacs 配置,Linux 和 Mac OSX 没有区别,还是通过目录软链接的方式, 注意如果之前有 ~/.emacs.d 目录或者是 ~/.emacs 文件,备份一下,直接删掉,我所有的配置都在 bitorb 项目 中。

$ ln -sf ~/Projects/gaixie/bitorb/dot.emacs.d/ ~/.emacs.d

到这里位置,Emacs 的配置就结束了,进入 Emacs,并检查相关的版本是否正确。

$ emacs

M-x version
M-x org-version

5 Fossil

Linux 和 Mac OSX 都采用源码编译方式安装,先从 官网下载 最新的源码包,编译后得到 fossil 可执行文件 ,直接复制到 /usr/local/bin 目录下, 因为只有一个文件,就不做软链接了。

$ tar xvf fossil-src-20130618210923.tar
$ cd fossil-src-20130618210923
$ ./configure --with-openssl=none
$ make
$ sudo mv fossil /usr/local/bin

Linux 不配置 cgi,只通过 fossil ui 或者是 fossil server 来提供对外服务。 下面的配置都是针对 Mac OSX 环境。首先在 /Library/WebServer/CGI-Executables 目录创建如下内容的 fsl.cgi 文件。

#!/usr/local/bin/fossil
directory: /Users/tommy/Projects/fossils
notfound: http://localhost/cgi-bin/fsl.cgi/tommy

创建一个仓库目录 ~/Projects/fossils,并设置权限让 _www 用户可写。

$ mkdir ~/Projects/fossils
$ sudo chown tommy:_www ~/Projects/fossils
$ sudo chmod 775 ~/Projects/fossils

# 克隆我的远程仓库
$ cd ~/Projects/fossils
$ fossil clone http://user:[email protected]:8080/index tommy.fossil
$ chmod 664 tommy.fossil

参考文档:

6 Docbook

官网下载 下载最新的 docbook-xml-ns 软件包,这里试用的是 1.78.1 版本。下面命令也适用于 Mac OSX。

$ tar xjvf docbook-xsl-ns-1.78.1.tar.bz2
$ sudo mv ~/Downloads/docbook-xsl-ns-1.78.1 /usr/local/share/
$ sudo ln -s /usr/local/share/docbook-xsl-ns-1.78.1 \
             /usr/local/share/docbook-xsl-ns

最后设置环境变量 DOCBOOK_PATH,详见 environment 文件,具体设置方法参考重装系统时的设置

如果要输出 html,好需要安装 xsltproc

$ sudo aptitude install xsltproc

7 Maven

从 Mac OSX Mavericks (10.9) 以后,不再默认安装 Maven 了,需要通过下面命令手动安装(也适用 Linux)。 首先从 官网下载 最新的安装文件,这里 apache-maven-3.2.1-bin.tar.gz 。

$ sudo mkdir /usr/local/maven
$ sudo mv ~/Downloads/apache-maven-3.2.1-bin.tar.gz /usr/local/maven/
$ cd /usr/local/maven/
$ sudo tar xzvf apache-maven-3.2.1-bin.tar.gz
$ sudo ln -sf /usr/local/maven/apache-maven-3.2.1 \
              /usr/local/maven/default

然后设置环境变量 M2_HOME,详见 environment 文件,具体设置方法参考重装系统时的设置。 最后如果要 deploy 到远程库,需要配置一个 settings.xml 文件,可以直接从 maven 的安装目录复制一个过来修改。

$ cp /usr/local/maven/default/conf/settings.xml ~/.m2/
$ vi ~/.m2/settings.xml

由于要将远程库 (如 sonatype) 的账号密码写到这个文件中,所以不便将此文件放到 github 中版本化。 增加的内容如下:

[...]
    <server>
      <id>sonatype-staging</id>
      <username>xxxxxx</username>
      <password>xxxxxx</password>
    </server>
    <server>
      <id>sonatype-snapshots</id>
      <username>xxxxxx</username>
      <password>xxxxxx</password>
    </server>
[...]

8 Gradle

Gradle 的安装配置和 Maven 一样,先从 官网下载 最新的安装文件。然后解压缩到指定目录。 做好软链接。环境变量 GRADLE_HOME,详见 environment 文件,具体设置方法参考重装系统时的设置。下面命令同时适用于 Mac OSX 和 Linux。

$ sudo mkdir /usr/local/gradle
$ sudo mv ~/Downloads/gradle-2.1-all.zip /usr/local/gradle/
$ cd /usr/local/gradle/
$ sudo unzip gradle-2.1-all.zip
$ sudo ln -sf /usr/local/gradle/gradle-2.1 /usr/local/gradle/default

9 Vim

vimdiff 作为我默认的 git mergetool,它默认的 colorscheme 配色有问题, 所以通过 .vimrc 来修改默认的 colorscheme。

该配置文件通过下面的软链接进行加载:

$ ln -sf ~/Projects/gaixie/bitorb/dot.vimrc ~/.vimrc

10 Sphinx

Tommy Wang
2019-03-14 22:09:43
Emacs 26.1 (Org mode 8.3.4)