工作中大部分的开发环境一般都是 Ubuntu 16.04,而我也不例外,最近几天花部分时间作一下系统的备份和升级, 顺便体验下Ubuntu 18.04 新系统, 新的系统主要大部分时间用于开发环境的搭建,这里围绕两个原则进行新系统的搭建:

  1. 容器化 : 工作中开发环境全部搭建在Docker中,方便环境的快速迁移而又不依赖于主系统 。
  2. 自动化: 新系统的配置文件全部统一管理起来,方便备份和迁移。

原系统中的软件一览:


安装Ubuntu 18.04
  • 安装电脑的为 ThinkPad T430 , 开机之后通过F1 进入BIOS, 设置启动顺序

  • 通过 dd 制作启动盘

Linux dd命令制作U盘系统启动盘

Linux系统下用dd命令制作ISO镜像U盘启动盘

Ubuntu使用dd命令制作U盘系统启动盘

//查看U盘挂在的分区
fdisl -l
//ubuntu 写入U盘
sudo dd bs=1M if=/xxx/ubuntu-18.04.1-desktop-amd64.iso  of=/dev/sdb
实际过程中,如果bs=4M, 制作的系统启动盘,发现启动设置U盘启动,一直进入的是正常系统。 重新制作启动盘, bs=1M之后正常进入装机模式
系统软件
  • 系统基本安装包
sudo apt-get install aptitude 

Configure -> keyboard 

在这里插入图片描述

主要原因就是xmind是基于java开发的,系统要安装java 的开发环境JRE才能运行
在这里插入图片描述

在这里插入图片描述

  • 由于电脑大小写切换没有灯效提示,需要安装 indicator-keylock作为大小写提示。也有其他方案ubuntu下大小写切换提醒,通过Java写的一个小程序
sudo add-apt-repository ppa:tsbarnes/indicator-keylock
sudo apt-get update
sudo apt-get install indicator-keylock

安装完成之后,在启动器中找到Indicator LockKeys单击运行,或者重启系统

开发软件
zsh
  • 主要参考以下文章安装,主要步骤
//安装zsh
sudo apt-get install zsh
//把默认的Shell改成zsh
chsh -s /bin/zsh
//安装oh-my-zsh,用于用于快速配置zsh
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

强烈推荐一款自动跳转目录插件autojump 一键直达目录

Ubuntu 16.04下安装zsh和oh-my-zsh

在 Ubuntu 16.04 中安裝使用 Oh-My-Zsh

  • 可以修改~/.zshrc添加相关配置,如下:
//主要配置相关插件
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.                              
plugins=(                                                                               
  git
  osx                                                                                   
  extract                                                                               
  sudo 
)

//配置 autojump 
. /usr/share/autojump/autojump.sh

zsh+on-my-zsh配置教程指南

终端 Guake

平常并没有使用使用Ubuntu 自带的Terminal,而是使用下拉式终端Guake,主要优势是任何时候都能够通过快捷键调出来,非常高效。安装完成之后,主要配置:
开机启动设置: 搜索应用程序Startup Applications 中添加/usr/bin/guake
皮肤配置 : Monokai
快捷键 : 切换Tab由默认的 Cttl+1-9 改为Alt+1-9 , 快速调出Guake快捷键由默认的F12改为F11,(主要因为F12和浏览器中的快捷键冲突)

在这里插入图片描述

vim
Docker
  • 参考Docker 官方文档进行安装 Get Docker CE for Ubuntu
  • 默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组,参考开源电子书Docker — 从入门到实践
//建立 docker 组:
$ sudo groupadd docker
//将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER
退出当前终端并重新登录,进行如下测试。
串口终端SecureCRT
系统私有配置
  • /etc/hosts 主要添加公司的IP
  • /etc/fstab 开机挂在另外一块硬盘
/dev/sdb1   /xxx/Project              ext4    errors=remount-ro        0       1
/dev/sdb2   /xxx/Code                 ext4    errors=remount-ro        0       1

vpn 配置
// 参考第二篇文章解决该问题
➜   sudo xxxsslocal  -c /etc/shadowsocks.json -d start
INFO: loading config from /etc/shadowsocks.json
2019-01-06 17:32:56 INFO     loading libcrypto from libcrypto.so.1.1
Traceback (most recent call last):
  File "/home/mike/.local/bin/sslocal", line 11, in <module>
    sys.exit(main())
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/local.py", line 39, in main
    config = shell.get_config(True)
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/shell.py", line 262, in get_config
    check_config(config, is_local)
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/shell.py", line 124, in check_config
    encrypt.try_cipher(config['password'], config['method'])
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 44, in try_cipher
    Encryptor(key, method)
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 83, in __init__
    random_string(self._method_info[1]))
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/encrypt.py", line 109, in get_cipher
    return m[2](method, key, iv, op)
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py", line 76, in __init__
    load_openssl()
  File "/home/mike/.local/lib/python2.7/site-packages/shadowsocks/crypto/openssl.py", line 52, in load_openssl
    libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 379, in __getattr__
    func = self.__getitem__(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 384, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup

  • 启动命令 sudo sslocal -c /etc/shadowsocks.json -d start
  • 配置文件参数
➜  vpn cat /etc/shadowsocks.json 
{
    "server":"xxx",
    "server_port":xxx,
    "local_address": "127.0.0.1",
    "local_port":xxx,
    "password":"xxx",
    "method":"xxx",
    "fast_open": false,
    "workers": 7
}

➜  vpn env | grep ^PATH
PATH=/home/xxx/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
➜  vpn sudo env | grep ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
➜  vpn whereis sslocal 
sslocal: /home/xxx/.local/bin/sslocal
`
// 可以发现sslocal的安装路径没有添加到sudo 中的环境变量中,导致无法发现
Git
$ git config --global user.name "xxx"
$ git config --global user.email xxx@example.com
$ git config --global core.editor vim
$ git config --list
VMware
➜  Downloads chmod +x VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle 
➜  Downloads sudo ./VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle 
// VMware Workstation v12  激活码
5A02H-AU243-TZJ49-GTC7K-3C61N 
VF5XA-FNDDJ-085GZ-4NXZ9-N20E6 
UC5MR-8NE16-H81WY-R7QGV-QG2D8 
ZG1WH-ATY96-H80QP-X7PEX-Y30V4 
AA3E0-0VDE1-0893Z-KGZ59-QGAVF 

  • 运行vmware 报错
 source vmware
/usr/lib/vmware/bin/vmware-modconfig: Relink `/lib/x86_64-linux-gnu/libbsd.so.0' with `/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'


//参考如下方案解决

git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git checkout workstation-12.5.9 (change it to your version. it's important)
make && sudo make install
cd /usr/lib/vmware/lib/libz.so.1
sudo mv libz.so.1 libz.so.1.old
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 .
sudo depmod -a
sudo /etc/init.d/vmware restart

在这里插入图片描述

VirtualBox

由于VirtualBox开源,免费,比较常用,但是配置比较繁琐,没有vmware使用简单

代码对比工具 Beyond-Compare
音频编辑器Audacity
sudo add-apt-repository ppa:audacity-team/daily
sudo apt-get update
sudo apt-get install audacity

VSCode

持续更新

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐