配置一台开发服务器

2021-06-10 11:50:27 浏览数 (1)

临近 618 年中大促,各大云服务商也会提供一些优惠。正好我三年前在腾讯云上买的一台 2 核 4G 的虚拟机到期了,看了一下腾讯云的优惠活动,下单了一台 2 核 4G 的的轻量应用服务器(一年期,288 元)。

轻量应用服务器一般都会提供一些常见的镜像(WordpressLAMP 等),我的目的不是建站,所以还是选了朴素的 Ubuntu18.04 的基础镜像。

下面大致介绍一下我配置服务器的过程(安装及配置方法基本来源于对应工具官网)。

配置密钥登录

轻量应用服务器默认是从腾讯云控制台直接登录到终端,可以将自己的公钥加到 ssh 配置里。

代码语言:txt复制
# Remote
cat PUBLIC_KEY >> ~/.ssh/authorized_keys

为了方便登录,可以配置自己主机的ssh config 文件,随后就可以通过ssh light命令登录到服务器。

代码语言:txt复制
# ~/.ssh/config

Host light
  HostName 1.2.3.5
  Port 22
  User lighthouse

<!-- more -->

更新系统

事实上我可以直接通过命令更新到 20.04,不过根据历史经验服务器直接升级系统不是很稳定,我还是只进行了基本的系统软件更新。

代码语言:txt复制
sudo apt update
ssh apt dist-upgrade

安装配置oh my zsh!

oh my zsh!比起默认的bash还是要好用一点,并且可以很方便地进行配置。

代码语言:txt复制
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装常用开发工具

build-essential

基础的gccg make等构建工具链可以通过安装build-essential来获得。

代码语言:txt复制
sudo apt install build-essential

pyenv

ubuntu 18.04 自带的 Python 版本还是老了一点。我个人还是非常依赖Python 3.8及以上版本的新语言特性的。在 Linux 平台上安装多版本的 Python,最方便的就是使用pyenv工具了。

安装构建依赖
代码语言:txt复制
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev 
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm 
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
安装pyenv
代码语言:txt复制
curl https://pyenv.run | bash

安装好 pyenv 后需要按照提示设置一下.zshrc

使用pyenv
代码语言:txt复制
pyenv install 3.9.5
pyenv install 3.10.0b2
pyenv gloabl 3.9.5
python -m pip install -U pip # 升级pip

Python 相关工具

代码语言:txt复制
pip install pipenv poetry iredis httpie prm -i https://mirrors.cloud.tencent.com/pypi/simple

pipenvpoetry用于项目和虚拟环境理(我个人不喜欢用virtualenv-wrapper)。

httpie是一个很好用的 curl 替代工具。

iredis是一个交互友好的 redis-client 替代工具。

prm是一个管理默认pypi源的工具(作者是我本人)。

dockerdocker-compose

docker 本身或许不是必要的,但我现在习惯使用容器部署 redismongodb 实例,并使用 docker-compose 管理。

安装docker
代码语言:txt复制
# 安装依赖
sudo apt-get update
sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg 
    lsb-release
# 引入官方GPG-KEY
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 配置apt源
echo 
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu 
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 配置非root用户管理docker
sudo usermod -aG docker light
安装docker-compose
代码语言:txt复制
# 下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 修改权限
sudo chmod  x /usr/local/bin/docker-compose

rust 及相关工具

身为一个 rust 爱好者,我在大部分的环境下都安装了 rust 工具链和一些列使用 rust 编写的命令行工具。

安装 rust 工具链
代码语言:txt复制
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装 rust 工具

实际上下面有些工具是可以直接下载二进制文件的,使用cargo install会花费大量的编译时间。

  • bat (功能加强的 cat)
  • du-dust (du 替代品)
  • eva (命令行计算器)
  • exa (ls 替代品)
  • fd-find (更好用的 find 替代品)
  • gitui (还不错的 git 管理工具)
  • miniserve (静态 http 服务器,自带一些高级功能:下载 zip,上传文件等,替代python -m http.server)
  • procs (ps 替代品)
  • ripgrep (grep 替代品)
  • tokei (统计代码行数,比 cloc 快很多)
  • xh (rust 版本的 httpie)

deno

我个人还是比较喜欢 deno 的一些理念的,希望这台服务器上可以不用安装node.js

代码语言:txt复制
curl -fsSL https://deno.land/x/install/install.sh | sh

jre、dotnet、php...

安装方式可以通过官网和搜索引擎获取,只是部署相关服务的话建议使用容器。

总结

配置一台开发服务器还是比较麻烦的,以后有空的话或许可以研究一下ansible

0 人点赞