问候语

很高兴认识你。我的名字是@kuroseets。
我于2000年开始以自由职业者的身份工作,拥有12年的开发经验和8年的基础架构经验。
您喜欢哪种编程语言或脚本语言?或者您经常在工作中使用什么?
对于正在开发的人,有很多Java吗?还是C#?ruby? PHP的?
对于那些在办公室工作中创建脚本的人,VBScript也处于活动状态。
我目前在基础设施运营构建方面,因此包括我在内的我周围经常使用的Python,Ruby,Perl和Bash周围的东西,给我的印象是Golang越来越多。 (这只是个人主观性。
我认为每个人都有自己的口味,但是由于环境和站点的限制,有些可以使用,有些不能使用,并且我每次都在站点上掌握它们并获得了技能。
如今,它仅被吹捧为Infrastructure as Code,我感到除了配置管理配置文件以外,我一直在努力。
我本次打算亲自学习Golang,但由于这是一个好主意,所以我想在学习时比较著名的脚本语言。
除了Golang之外,我们还计划针对Python,Ruby,Perl和Bash(用于基础架构操作的4个强大脚本!)。

环境

我想使用最新版本,因为我正在使用它!
因此,我决定始终通过版本控制工具安装解释器,以使安装和管理最新版本更加容易。

安装anyenv

我通过参考

@ rinpa的https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c进行安装。
env命令对于使用每种脚本语言非常方便,但是单独安装它们很麻烦。
但是,如果可以由anyenv集中管理它,将非常方便。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# anyenvインストール
brew install anyenv

# anyenvが実行できるか確認
anyenv --version

# 初期ディレクトリがないので初期化して作成
anyenv install --init

# インストールできるenv系コマンドの確認
anyenv install -l

# 各envをインストール
anyenv install goenv
anyenv install pyenv
anyenv install rbenv
anyenv install plenv

# 環境変数の設定
echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

golang

根据goenv,最新版本的golang的安装将悄悄进行。

1
2
3
4
5
6
7
8
9
10
11
# インストール可能なgoのバージョンを確認
goenv install -l

# 最新版をインストール(執筆時は1.13.6)
goenv install 1.13.6

# インストールしたバージョンを指定
goenv global 1.13.6

# 指定したバージョンが実行できているか確認
go --version

python

python还会安装最新版本。

1
2
3
4
5
6
7
8
9
10
11
# インストール可能なpythonのバージョンを確認
pyenv install -l

# 最新版をインストール(執筆時は3.8.1)
pyenv install 3.8.1

# インストールした最新版バージョンを指定
pyenv global 3.8.1

# 指定したバージョンが実行できているか確認
python --version

ruby

ruby具有相同的过程。

1
2
3
4
5
6
7
8
9
10
11
# インストール可能なrubyのバージョンを確認
rbenv install -l

# 最新版をインストール(執筆時は2.7.0)
rbenv install 2.7.0

# インストールした最新版バージョンを指定
rbenv global 2.7.0

# 指定したバージョンが実行できているか確認
ruby --version

perl

还有perl。

1
2
3
4
5
6
7
8
9
10
11
# インストール可能なrubyのバージョンを確認
plenv install -l

# stableの最新版をインストール(執筆時は5.30.1)
plenv install 5.30.1

# インストールした最新版バージョンを指定
plenv global 5.30.1

# 指定したバージョンが実行できているか確認
perl --version

bash

anyenv没有工具来管理bash的版本,因此我使用了以下工具。
https://i-beam.org/2015/12/25/211817/

我试图参考站点安装它,但出现错误

1
2
3
4
5
6
git clone https://github.com/ueokande/bashvm ~/.bashvm
echo 'source $HOME/.bashvm/bin/bashvm-init' >> ~/.bashrc
source ~/.bashrc

  readlink: illegal option -- f
  usage: readlink [-n] [file ...]

BSD Macs似乎在readlink 上没有-f选项
参照此创建readlink -f的命令
https://stackoverflow.com/questions/1055671/how-can-i-get-the-behavior-of-gnus-readlink-f-on-a-mac

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat << 'EOF' > /usr/local/bin/readlinkf
#!/bin/sh

TARGET_FILE=$1

cd `dirname $TARGET_FILE`
TARGET_FILE=`basename $TARGET_FILE`

# Iterate down a (possible) chain of symlinks
while [ -L "$TARGET_FILE" ]
do
    TARGET_FILE=`readlink $TARGET_FILE`
    cd `dirname $TARGET_FILE`
    TARGET_FILE=`basename $TARGET_FILE`
done

# Compute the canonicalized name by finding the physical path
# for the directory we're in and appending the target file.
PHYS_DIR=`pwd -P`
RESULT=$PHYS_DIR/$TARGET_FILE
echo $RESULT
EOF
chmod 755 /usr/local/bin/readlinkf

用此命令

替换

readlink -f

1
2
3
4
5
6
7
8
9
10
11
--- bashvm-init.bak 2020-01-18 07:08:43.000000000 +0900
+++ bashvm-init 2020-01-18 07:09:30.000000000 +0900
@@ -124,7 +124,7 @@
 export -f bashvm

 export BASHVM_HOME=${BASHVM_HOME:-$HOME/.bashvm}
-PATH="$(readlink -f $(dirname $BASH_SOURCE)):$PATH"
+PATH="$(readlinkf $(dirname $BASH_SOURCE)):$PATH"

 test -f $BASHVM_HOME/config && source $BASHVM_HOME/config
 export bashvm_default_version=${bashvm_default_version:-system}

我再次运行source ~/.bashrc,它成功了
现在安装最新版本的bash

1
2
3
4
5
6
7
8
# 執筆次の最新は5.0
bashvm install 5.0

# インストールした最新版バージョンを指定
bashvm use 5.0

# 指定したバージョンが実行できているか確認
bash --version

这样就完成了构建工作。
从下一次开始,我将在比较每种语言的同时进行编程。