前書き
Goは、Googleの欲求不満から生まれたプログラミング言語です。 開発者は、効率的に実行されるがコンパイルに長い時間を要する言語を選択するか、プログラミングは容易であるが生産では非効率的に実行される言語を選択する必要がありました。 Goは、3つのすべてを同時に使用できるように設計されています。つまり、高速コンパイル、プログラミングの容易さ、および本番環境での効率的な実行です。
Goは、さまざまなプログラミングプロジェクトで使用できる汎用プログラミング言語ですが、ネットワーク/分散システムプログラムに特に適し、「クラウドの言語」としての評価を得ています。現代のプログラマーの支援に焦点を当てています。強力なツールセットにより、言語仕様の一部をフォーマットにすることでフォーマットに関する議論を排除し、単一のバイナリにコンパイルすることで展開を容易にします。 Goは非常に少ないキーワードセットで習得しやすく、初心者にも経験豊富な開発者にも最適な選択肢です。
このチュートリアルでは、ローカルのmacOSマシンにGoをインストールし、コマンドラインからプログラミングワークスペースをセットアップする方法を説明します。
前提条件
インターネットに接続された管理アクセスを備えたmacOSコンピューターが必要です。
[[step-1 -—- opening-terminal]] ==ステップ1-Opening Terminal
コマンドラインでインストールとセットアップのほとんどを完了します。これは、コンピューターと対話する非グラフィカルな方法です。 つまり、ボタンをクリックする代わりに、テキストを入力し、テキストを介してコンピューターからフィードバックを受け取ります。 コマンドライン(シェルとも呼ばれる)は、コンピューターで毎日行うタスクの多くを変更および自動化するのに役立ち、ソフトウェア開発者にとって不可欠なツールです。
macOSターミナルは、コマンドラインインターフェイスにアクセスするために使用できるアプリケーションです。 他のアプリケーションと同様に、Finderに移動し、Applicationsフォルダーに移動してから、Utilitiesフォルダーに移動して見つけることができます。 ここから、他のアプリケーションと同様にターミナルをダブルクリックして開きます。 または、CMD
キーとSPACE
キーを押したままにしてSpotlightを使用し、表示されるボックスに入力してターミナルを見つけることもできます。
より強力なことを実行できるようにするために、学ぶべきターミナルコマンドがさらにたくさんあります。 「https://www.digitalocean.com/community/tutorials/an-introduction-to-the-linux-terminal[Linuxターミナルの紹介]」という記事は、Linuxターミナルの方向性をより良くすることができます。 macOSターミナルへ。
ターミナルを開いたので、Goをインストールするために必要な開発ツールのパッケージであるXcodeをダウンロードしてインストールできます。
[[step-2 -—- installing-xcode]] ==ステップ2—Xcodeのインストール
Xcodeは、macOS用のソフトウェア開発ツールで構成されるintegrated development environment(IDE)です。 「ターミナル」ウィンドウで次を入力して、Xcodeがすでにインストールされているかどうかを確認できます。
xcode-select -p
次の出力は、Xcodeがインストールされていることを意味します。
Output/Library/Developer/CommandLineTools
エラーが発生した場合は、WebブラウザにXcode from the App Storeをインストールし、デフォルトのオプションを受け入れます。
Xcodeをインストールしたら、ターミナルウィンドウに戻ります。 次に、Xcodeの個別のコマンドラインツールアプリをインストールする必要があります。これは、次のように入力して実行できます。
xcode-select --install
この時点で、Xcodeとそのコマンドラインツールアプリは完全にインストールされ、パッケージマネージャーHomebrewをインストールする準備が整いました。
[[step-3 -—- installing-and-setting-up-homebrew]] ==ステップ3—Homebrewのインストールと設定
macOSターミナルにはLinuxターミナルや他のUnixシステムの多くの機能がありますが、ベストプラクティスに対応するパッケージマネージャーは付属していません。 package managerは、ソフトウェアの初期インストール、ソフトウェアのアップグレードと構成、および必要に応じたソフトウェアの削除を含むインストールプロセスを自動化するために機能するソフトウェアツールのコレクションです。 インストールは中央の場所に保持され、一般的に使用される形式でシステム上のすべてのソフトウェアパッケージを維持できます。 Homebrewは、macOSへのソフトウェアのインストールを簡素化する無料のオープンソースソフトウェアパッケージ管理システムをmacOSに提供します。
Homebrewをインストールするには、これをターミナルウィンドウに入力します。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
HomebrewはRubyで作成されているため、コンピューターのRubyパスを変更します。 curl
コマンドは、指定されたURLからスクリプトをプルします。 このスクリプトはそれが何をするのかを説明し、確認のためにプロセスを一時停止します。 これにより、スクリプトがシステムに対して実行することに関する多くのフィードバックが提供され、プロセスを検証する機会が与えられます。
パスワードを入力する必要がある場合、キーストロークは「ターミナル」ウィンドウに表示されず、記録されます。 パスワードを入力したら、return
キーを押すだけです。 それ以外の場合は、インストールの確認を求められたら、「はい」の文字y
を押してください。
curl
コマンドに関連付けられているフラグを見ていきましょう。
-
-f
または--fail
フラグは、サーバーエラーでHTMLドキュメント出力を提供しないようにターミナルウィンドウに指示します。 -
-s
または--silent
フラグは、進行状況メーターが表示されないようにcurl
をミュートし、-S
または--show-error
フラグと組み合わせてcurl
は、失敗するとエラーメッセージを表示します。 -
-L
または--location
フラグは、要求されたページが別の場所に移動したことをサーバーが報告した場合、curl
に要求を新しい場所にやり直すように指示します。
インストールプロセスが完了したら、HomebrewディレクトリをPATH
環境変数の先頭に配置します。 これにより、Homebrewインストールが、作成中の開発環境に反する可能性のあるmacOSが自動的に選択するツールを介して呼び出されます。
nano
コマンドを使用して、コマンドラインテキストエディタnanoで~/.bash_profile
ファイルを作成または開く必要があります。
nano ~/.bash_profile
ターミナルウィンドウでファイルが開いたら、次のように記述します。
export PATH=/usr/local/bin:$PATH
変更を保存するには、CTRL
キーと文字o
を押したままにし、プロンプトが表示されたら%(t2)sキーを押します。 これで、CTRL
キーと文字x
を押したままにしてnanoを終了できます。
ターミナルで次を実行して、これらの変更を有効にします。
source ~/.bash_profile
これを実行すると、PATH
環境変数に加えた変更が有効になります。
次のように入力して、Homebrewが正常にインストールされたことを確認できます。
brew doctor
この時点で更新が必要ない場合、ターミナルの出力は次のようになります。
OutputYour system is ready to brew.
そうしないと、brew update
などの別のコマンドを実行して、Homebrewのインストールが最新であることを確認するように警告が表示される場合があります。
Homebrewの準備ができたら、Goをインストールできます。
[[step-4 -—- installing-go]] ==ステップ4—Goのインストール
Homebrewを使用して、brew search
コマンドで使用可能なすべてのパッケージを検索できます。 このチュートリアルでは、Go関連のパッケージまたはモジュールを検索します。
brew search golang
[.note]#Note:このチュートリアルでは、返される結果が多すぎるため、brew search go
は使用しません。 go
は非常に小さな単語であり、多くのパッケージに一致するため、検索語としてgolang
を使用することが一般的になっています。 これは、インターネットでGo関連の記事を検索する場合にも一般的な方法です。 Golangという用語は、Goのドメイン(golang.org
。
#)から生まれました。
ターミナルは、インストールできるもののリストを出力します:
Outputgolang golang-migrate
Goはリストの項目に含まれます。 先に進んでインストールしてください:
brew install golang
ターミナルウィンドウは、Goのインストールプロセスに関するフィードバックを提供します。 インストールが完了するまで数分かかる場合があります。
インストールしたGoのバージョンを確認するには、次を入力します。
go version
これにより、現在インストールされているGoの特定のバージョンが出力されます。これは、デフォルトで、利用可能なGoの最新の安定したバージョンになります。
将来、Goを更新するには、次のコマンドを実行して、最初にHomebrewを更新してからGoを更新できます。 最新バージョンをインストールしたばかりなので、今すぐこれを行う必要はありません。
brew update
brew upgrade golang
brew update
は、Homebrew自体の式を更新し、インストールするパッケージの最新情報を確実に入手できるようにします。 brew upgrade golang
は、golang
パッケージをパッケージの最新リリースに更新します。
Goのバージョンが最新であることを確認することをお勧めします。
Goがコンピューターにインストールされたら、Goプロジェクトのワークスペースを作成する準備ができました。
[[step-5 -—- creating-your-go-workspace]] ==ステップ5—Goワークスペースの作成
Xcode、Homebrew、およびGoがインストールされたので、プログラミングワークスペースを作成できます。
Goワークスペースのルートには2つのディレクトリが含まれます。
-
src
:Goソースファイルを含むディレクトリ。 ソースファイルは、Goプログラミング言語を使用して記述するファイルです。 Goコンパイラは、ソースファイルを使用して実行可能なバイナリファイルを作成します。 -
bin
:Goツールによってビルドおよびインストールされた実行可能ファイルを含むディレクトリ。 実行可能ファイルは、システムで実行され、タスクを実行するバイナリファイルです。 これらは通常、ソースコードまたは別のダウンロードされたGoソースコードによってコンパイルされたプログラムです。
src
サブディレクトリには、複数のバージョン管理リポジトリ(Git、Mercurial、Bazaarなど)が含まれる場合があります。 プログラムがサードパーティのライブラリをインポートすると、github.com
やgolang.org
などのディレクトリが表示されます。 github.com
のようなコードリポジトリを使用している場合は、プロジェクトとソースファイルもそのディレクトリに配置します。 これにより、プロジェクト内のコードの標準的なインポートが可能になります。 Canonicalインポートは、github.com/digitalocean/godo
などの完全修飾パッケージを参照するインポートです。
典型的なワークスペースは次のようになります。
.
├── bin
│ ├── buffalo # command executable
│ ├── dlv # command executable
│ └── packr # command executable
└── src
└── github.com
└── digitalocean
└── godo
├── .git # Git reposistory metadata
├── account.go # package source
├── account_test.go # test source
├── ...
├── timestamp.go
├── timestamp_test.go
└── util
├── droplet.go
└── droplet_test.go
1.8以降のGoワークスペースのデフォルトディレクトリは、go
サブディレクトリまたは$HOME/go
を持つユーザーのホームディレクトリです。 1.8より前のバージョンのGoを使用している場合でも、ワークスペースに$HOME/go
の場所を使用することをお勧めします。
次のコマンドを発行して、Goワークスペースのディレクトリ構造を作成します。
mkdir -p $HOME/go/{bin,src}
-p
オプションは、現在存在しない場合でも、ディレクトリ内にすべてのparents
を作成するようにmkdir
に指示します。 {bin,src}
を使用すると、mkdir
への一連の引数が作成され、bin
ディレクトリとsrc
ディレクトリの両方を作成するように指示されます。
これにより、次のディレクトリ構造が適切に配置されます。
└── $HOME
└── go
├── bin
└── src
Go 1.8より前は、$GOPATH
というローカル環境変数を設定する必要がありました。 明示的に要求する必要はなくなりましたが、多くのサードパーティツールが設定されているこの変数に依存しているため、それは依然として優れたプラクティスと考えられています。
~/.bash_profile
に追加することで、$GOPATH
を設定できます。
まず、nano
またはお好みのテキストエディタで~/.bash_profile
を開きます。
nano ~/.bash_profile
ファイルに以下を追加して、$GOPATH
を設定します。
~/.bash_profile
export GOPATH=$HOME/go
Goがツールをコンパイルしてインストールすると、ツールは$GOPATH/bin
ディレクトリに配置されます。 便宜上、ワークスペースの/bin
サブディレクトリを~/.bash_profile
のPATH
に追加するのが一般的です。
~/.bash_profile
export PATH=$PATH:$GOPATH/bin
これで、~/.bash_profile
に次のエントリが含まれるはずです。
~/.bash_profile
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
これにより、システムの任意の場所でGoツールを使用してコンパイルまたはダウンロードしたプログラムを実行できるようになります。
シェルを更新するには、次のコマンドを発行して、作成したばかりのグローバル変数をロードします。
. ~/.bash_profile
echo
コマンドを使用し、出力を調べることで、$PATH
が更新されていることを確認できます。
echo $PATH
ホームディレクトリに表示される$GOPATH/bin
が表示されます。 sammy
としてログインしている場合、パスに/Users/sammy/go/bin
が表示されます。
Output/Users/sammy/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
ワークスペースのルートが作成され、$GOPATH
環境変数が設定されたので、次のディレクトリ構造で将来のプロジェクトを作成します。 この例では、リポジトリとしてgithub.comを使用していることを前提としています。
$GOPATH/src/github.com/username/project
https://github.com/digitalocean/godoプロジェクトで作業している場合は、次のディレクトリに配置します。
$GOPATH/src/github.com/digitalocean/godo
この方法でプロジェクトを構造化すると、go get
ツールでプロジェクトを使用できるようになります。 また、後で読みやすくなります。
これは、go get
コマンドを使用してgodo
ライブラリをフェッチすることで確認できます。
go get github.com/digitalocean/godo
ディレクトリを一覧表示すると、godo
パッケージが正常にダウンロードされたことがわかります。
ls -l $GOPATH/src/github.com/digitalocean/godo
次のような出力が表示されます。
Output-rw-r--r-- 1 sammy staff 2892 Apr 5 15:56 CHANGELOG.md
-rw-r--r-- 1 sammy staff 1851 Apr 5 15:56 CONTRIBUTING.md
.
.
.
-rw-r--r-- 1 sammy staff 4893 Apr 5 15:56 vpcs.go
-rw-r--r-- 1 sammy staff 4091 Apr 5 15:56 vpcs_test.go
この手順では、Goワークスペースを作成し、必要な環境変数を構成しました。 次のステップでは、コードを使用してワークスペースをテストします。
[[step-6 -—- creating-a-simple-program]] ==ステップ6—単純なプログラムの作成
Goワークスペースをセットアップしたら、次は簡単な「Hello、World!」プログラムを作成します。 これにより、ワークスペースが機能していることを確認し、Goに慣れる機会が得られます。
実際のプロジェクトではなく、単一のGoソースファイルを作成しているため、これを行うためにワークスペースにいる必要はありません。
ホームディレクトリから、nano
などのコマンドラインテキストエディタを開き、新しいファイルを作成します。
nano hello.go
ターミナルでテキストファイルが開いたら、プログラムを入力します。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
control
およびx
キーを入力してnanoを終了し、ファイルを保存するように求められたら、y
を押します。
このコードはfmt
パッケージを使用し、引数としてHello, World!
を指定してPrintln
関数を呼び出します。 これにより、プログラムの実行時にフレーズHello, World!
が端末に出力されます。
nano
を終了してシェルに戻ったら、次のプログラムを実行します。
go run hello.go
作成したhello.go
プログラムにより、ターミナルは次の出力を生成します。
OutputHello, World!
この手順では、基本的なプログラムを使用して、Goワークスペースが適切に構成されていることを確認しました。
結論
おめでとうございます。 この時点で、ローカルのmacOSマシンにGoプログラミングワークスペースがセットアップされ、コーディングプロジェクトを開始できます!