https://gitee.com/mirrors/iam/blob/master/docs/guide/zh-CN/installation/01_Linux%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%85%8D%E7%BD%AE.md#
https://gitee.com/mirrors/iam
https://github.com/marmotedu/iam
你可以通过Xshell等工具登录 Linux 服务器,登录后需要对服务器做一些简单但必要的配置,包括创建普通用户、添加 sudoers、配置 $HOME/.bashrc
文件,具体步骤如下。
going
普通用户root
用户登录 Linux 系统,并创建普通用户。一般来说,一个项目会由多个开发人员协作完成,为了节省企业成本,公司不会给每个开发人员都配备一台服务器,而是让所有开发人员共用一个开发机,通过普通用户登录开发机进行开发。为了模拟真实的企业开发环境,我们也通过一个普通用户进行项目开发。创建普通用户方法如下:
# useradd going # 创建 going 用户,通过 going 用户登录开发机进行开发
# passwd going # 设置 going 用户的登录密码
Changing password for user going.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
不仅如此,使用普通用户登录和操作开发机也可以保证系统的安全性,这是一个比较好的习惯,所以你在日常开发中也要尽量避免使用 root 用户。
我们知道很多时候,普通用户在进行一些操作时也需要root权限,但 root
用户的密码一般是由系统管理员维护并定期更改的,每次都向管理员询问密码又很麻烦。因此,我建议你将普通用户加入到 sudoers 中,这样普通用户就可以通过 sudo 命令来暂时获取root权限。具体来说,你可以执行以下命令将going
用户添加到sudoers中:
centos:
# sed -i '/^root.*ALL=(ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
ubuntu:
# sed -i '/^root.*ALL=(ALL:ALL).*ALL/a\going\tALL=(ALL) \tALL' /etc/sudoers
going
用户Shell环境设置假设我们使用 going 用户作为实战用户,使用Xshell / SecureCRT等工具登录Linux系统,推荐使用Xshell。
$HOME/.bashrc
文件。我们登录新服务器后的第一步就是配置 $HOME/.bashrc
文件,以使 Linux 登录 Shell 更加易用,例如:配置 LANG
解决中文乱码;配置 PS1
可以使命令行提示符显示更简介。配置后的内容如下:
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
if [ ! -d $HOME/workspace ]; then
mkdir -p $HOME/workspace
fi
# User specific environment
# Basic envs
export LANG="en_US.UTF-8" # 设置系统语言为 en_US.UTF-8,避免终端出现中文乱码
export PS1='[\u@dev \W]\$ ' # 默认的 PS1 设置会展示全部的路径,为了防止过长,这里只展示:"用户名@dev 最后的目录名"
export WORKSPACE="$HOME/workspace" # 设置工作目录
export PATH=$HOME/bin:$PATH # 将 $HOME/bin 目录加入到 PATH 变量中
# Default entry folder
cd $WORKSPACE # 登录系统,默认进入 workspace 目录
# User specific aliases and functions
有一点需要注意,在 export PATH
时,最好把 $PATH
放到最后,因为添加到$HOME/bin
目录中的命令是期望被优先搜索并使用的。
$HOME/.bashrc
文件会自动创建工作目录workspace
,所有的工作都可以在这个目录下展开。这样做可以带来以下几点好处:
$HOME
目录保持整洁,便于以后的文件查找和分类。/
分区空间不足,可以将整个 workspace
目录 mv
到另一个分区中,并在/
分区中保留软连接,例如:/home/going/workspace -> /data/workspace/
。workspace
。配置好 $HOME/.bashrc
文件后,我们就可以执行 bash
命令将配置加载到当前 Shell 中了。
至此,我们就完成了 Linux 开发机的初步配置。
在 Linux 系统上安装 IAM 应用会依赖一些 RPM 包和工具,有些是直接依赖,有些是间接依赖。为了避免后续的操作出现依赖错误,例如因为包不存在而导致的编译、命令执行错误等,本节会预先安装和配置这些依赖包和工具。依赖安装和配置的具体步骤如下:
你可以在CentOS 系统上通过 yum
命令来安装需要的依赖工具,安装命令如下:
$ sudo yum -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet ctags lrzsz jq expat-devel openssl-devel
如果系统提示 Package xxx is already installed.
,说明xxx
包在系统中已经被安装过,你可以忽略该类报错提示。
你可以在Ubuntu 系统上通过 apt
命令来安装需要的依赖工具,安装命令如下:
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
$ sudo apt install libcurl4-openssl-dev
因为安装 IAM 应用、执行 go get
命令、安装 protobuf 工具等都会通过 Git 来下载安装包,所以我们还需要安装 Git。由于低版本的 Git 不支持--unshallow
参数,而 go get
在安装 Go 包时会用到 git fetch --unshallow
命令,因此我们要确保安装一个高版本的 Git,具体的安装方法如下:
$ cd /tmp
$ wget --no-check-certificate https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.33.1.tar.gz
$ tar -xvzf git-2.33.1.tar.gz
$ cd git-2.33.1/
$ ./configure
$ make
$ sudo make install
$ git --version # 输出 git 版本号,说明安装成功
git version 2.33.1
安装好Git后,还需要把 Git 的二进制目录添加到 PATH
路径中,不然 Git 可能会因为找不到一些命令导致 Git 报错。你可以执行以下命令来添加目录:
$ tee -a $HOME/.bashrc <<'EOF'
# Configure for git
export PATH=/usr/local/libexec/git-core:$PATH
EOF
你可以直接执行以下命令来配置 Git:
$ git config --global user.name "Lingfei Kong" # 用户名改成自己的
$ git config --global user.email "colin404@foxmail.com" # 邮箱改成自己的
$ git config --global credential.helper store # 设置 git,保存用户名和密码
$ git config --global core.longpaths true # 解决 Git 中 'Filename too long' 的错误
除了按照上述步骤配置 Git 之外,这里还有几点需要注意。
$ git config --global core.quotepath off
github.com
太慢,可以通过国内 GitHub 镜像网站来访问,配置方法如下:$ git config --global url."https://github.com.cnpmjs.org/".insteadOf "https://github.com/"
这里需要注意,通过镜像网站访问仅对 HTTPS 协议生效,对 SSH 协议不生效,并且 github.com.cnpmjs.org
的同步时间间隔为 1 天。
$ git lfs install --skip-repo