<!--title:Ubuntu系统安装配置指南-->
<!--category:个人笔记-->
<!--tags:ubuntu-->
<!--author:Neal-->
<!--date:2015-05-05-->

### 基本配置

设置Shell，修改用户组

    chsh -s /bin/bash
    sudo usermod -a -G users neal
    sudo usermod -g users neal

安装更新，删除更新管理器

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get purge update-manager
    sudo apt-get purge update-manager-core
    sudo apt-get autoremove
    sudo apt-get autoclean

安装Google Chrome

    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
    sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
    sudo apt-get update
    sudo apt-get install google-chrome-stable
    # 将缓存文件夹软链接到/tmp
    rm -rf ~/.cache/google-chrome;ln -s /tmp ~/.cache/google-chrome

### 优化配置

优化系统，加速启动

    sudo apt-get install prelink preload
    # sudo vi /etc/default/preload
    # 修改 #OPTIONS="-l /dev/null" 为 OPTIONS="-l /dev/null"
    # sudo vi /etc/default/prelink
    # 修改 PRELINKING=unknown 为 PRELINKING=yes
    sudo service preload restart
    sudo /etc/cron.daily/prelink

优化网络，禁用mdns

    # sudo vi /etc/nsswitch.conf
    # 修改/etc/nsswitch.conf文件，将其中的一行
    # hosts: files mdns4_minimal [NOTFOUND=return] dns
    # 改为
    # hosts: files dns [NOTFOUND=return]

修复挂起唤醒后，wifi断开不重连

    # sudo vi /etc/default/acpi-support
    # 修改/etc/default/acpi-support文件，将其中的一行
    # STOP_SERVICES=""
    # 改为
    # STOP_SERVICES="networking"

使用tmpfs挂载/tmp，减少磁盘读写

    # sudo vi /etc/fstab
    # 末尾加入以下：
    # # /tmp was on ram during installation
    # tmpfs /tmp tmpfs defaults,noatime,mode=1777,nosuid,size=512M 0 0
    sudo rm -rf /tmp/*;sudo rm -rf /tmp/.*;sudo reboot

### 开发配置

安装开发工具

    # Vim
    sudo apt-get purge vim-tiny
    sudo apt-get install vim

    # Vundle for Vim
    sudo apt-get install git
    sudo apt-get install curl
    git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    # Tmux
    sudo apt-get install tmux

    # Dotfiles
    git clone https://github.com/qianngchn/dotfiles.git
    cd dotfiles
    make install

    # Github Wiki
    sudo apt-get install pandoc
    git clone https://github.com/qianngchn/qianngchn.github.io.git

搭建开发环境

    # Docker
    sudo apt-get install docker.io
    sudo usermod -a -G docker neal

    # C/C++
    sudo apt-get install build-essential

    # Lua
    sudo apt-get install libreadline-dev
    wget https://www.lua.org/ftp/lua-5.3.4.tar.gz
    tar zxvf lua-5.3.4.tar.gz; rm lua-5.3.4.tar.gz
    cd lua-5.3.4
    make linux test
    make install INSTALL_TOP=/home/neal/local

### 服务配置

安装SSH Server

    sudo apt-get install openssh-server
    sudo service sshd restart

配置Samba服务

    sudo apt-get install samba samba-common smbclient
    # 创建共享目录:
    mkdir ~/project
    # 修改samba配置文件:
    # sudo vi /etc/samba/smb.conf
    # 最后面添加如下
    # [neal_project]
    # comment = neal_project
    # path = /home/neal/project
    # valid users = neal
    # public = yes
    # available = yes
    # browseable = yes
    # writable = yes
    # create mode = 0644
    # directory mode = 0755
    # 创建samba账户:
    sudo smbpasswd -a neal
    sudo ln -s /home/neal/project /srv/neal_project
    # 重启samba服务:
    sudo service smbd restart
    # 测试:
    testparm

配置Tftpd-hpa

    sudo apt-get install tftp-hpa tftpd-hpa
    # sudo vi /etc/default/tftpd-hpa
    # 修改为如下：
    # TFTP_USERNAME="tftp"
    # TFTP_DIRECTORY="/var/lib/tftpboot"
    # TFTP_ADDRESS="0.0.0.0:69"
    # TFTP_OPTIONS="--secure -l -c -s"
    # -l 参数用于自启动，-c 参数用于上传文件，-s 参数用于目录设置。
    # 修改文件夹权限：
    sudo chmod 777 /var/lib/tftpboot
    sudo ln -s /var/lib/tftpboot /srv
    # 重启tftpd-hpa服务：
    sudo service tftpd-hpa restart

配置NFS Server

    # 安装NFS Server：
    sudo apt-get install nfs-kernel-server
    # 创建NFS文件夹：
    mkdir ~/nfs
    sudo ln -s /home/neal/nfs /srv/neal_nfs
    # 修改nfs配置文件：
    # sudo vi /etc/exports
    # 最后一行添加 /home/neal/nfs *(rw,sync,no_root_squash,no_subtree_check)
    # /home/neal/nfs：与nfs服务客户端共享的目录，这个路径必须和你前面设置的文件的路径一致！
    # *：允许所有的网段访问，也可以使用具体的IP
    # rw：挂接此目录的客户端对该共享目录具有读写权限
    # sync：资料同步写入内存和硬盘
    # no_root_squash：root用户具有对根目录的完全管理访问权限。
    # no_subtree_check：不检查父目录的权限
    # 保存退出。
    # 重启nfs服务：
    sudo service portmap restart
    sudo service nfs-kernel-server restart
    # 注：nfs是一个RPC程序，使用它前，需要映射好端口，通过portmap设定
    # 测试：
    showmount -e
    # 结果如下
    # Export list for Ubuntu:
    # /home/neal/nfs *
    # 本机挂载：sudo mount -t nfs localhost:/home/neal/nfs /mnt
    # 取消挂载：sudo umount /mnt
    # 开发板挂载要加-o nolock参数：mount -t nfs -o nolock 192.168.1.90:/home/neal/nfs /mnt

配置LAMP Server

    sudo apt-get install apache2
    sudo apt-get install mysql-server
    sudo apt-get install mysql-client
    sudo apt-get install php5
    sudo apt-get install libapache2-mod-php5
    sudo apt-get install libapache2-mod-auth-mysql
    sudo apt-get install php5-mysql
    sudo apt-get install php5-gd
    # 安装phpmyadmin
    sudo apt-get install phpmyadmin
    sudo ln -s /usr/share/phpmyadmin /var/www
    sudo ln -s /var/www /srv
    # 启用apache2 rewrite模块
    sudo a2enmod rewrite
    # 启用php5 mcrypt模块
    sudo php5enmod mcrypt
    # 设置Apache支持.htm .html .php
    sudo sh -c "echo \"AddType application/x-httpd-php .php .htm .html\" >> /etc/apache2/apache2.conf"
    sudo sh -c "echo \"ServerName 127.0.0.1\" >> /etc/apache2/apache2.conf"
    # 重启Apache
    sudo service apache2 restart
