问候语
很高兴认识你。我的名字是@kuroseets。
我于2000年开始以自由职业者的身份工作,拥有12年的开发经验和8年的基础架构经验。
您喜欢哪种编程语言或脚本语言?或者您经常在工作中使用什么?
对于正在开发的人,有很多Java吗?还是C#?ruby? PHP的?
对于那些在办公室工作中创建脚本的人,VBScript也处于活动状态。
我目前在基础设施运营构建方面,因此包括我在内的我周围经常使用的Python,Ruby,Perl和Bash周围的东西,给我的印象是Golang越来越多。 (这只是个人主观性。
我认为每个人都有自己的口味,但是由于环境和站点的限制,有些可以使用,有些不能使用,并且我每次都在站点上掌握它们并获得了技能。
如今,它仅被吹捧为
我本次打算亲自学习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似乎在
参照此创建
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 |
用此命令
替换
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} |
我再次运行
现在安装最新版本的bash
1 2 3 4 5 6 7 8 | # 執筆次の最新は5.0 bashvm install 5.0 # インストールした最新版バージョンを指定 bashvm use 5.0 # 指定したバージョンが実行できているか確認 bash --version |
这样就完成了构建工作。
从下一次开始,我将在比较每种语言的同时进行编程。