GoをインストールしてUbuntu18.04にローカルプログラミング環境をセットアップする方法
ステータス:非推奨
この記事は非推奨になり、保守されなくなりました。
理由
現在、Linuxディストリビューションのリリースごとに個別にGoインストールドキュメントをバージョン管理および更新しています。
代わりに参照してください
この記事は参照として役立つ場合がありますが、機能しない場合やベストプラクティスに従わない場合があります。 使用しているオペレーティングシステム用に書かれた最新の記事を使用することを強くお勧めします。
序章
Go は、Googleの欲求不満から生まれたプログラミング言語です。 開発者は、効率的に実行されるがコンパイルに長い時間がかかる言語を選択するか、プログラミングが容易であるが本番環境で非効率的に実行される言語を選択する必要がありました。 Goは、高速コンパイル、プログラミングの容易さ、本番環境での効率的な実行という3つすべてを同時に利用できるように設計されています。
Goは、さまざまなプログラミングプロジェクトに使用できる汎用性の高いプログラミング言語ですが、ネットワーキング/分散システムプログラムに特に適しており、「クラウドの言語」としての評判を得ています。 これは、現代のプログラマーが強力なツールセットを使用してより多くのことを行えるようにすること、フォーマットを言語仕様の一部にすることでフォーマットに関する議論を排除すること、および単一のバイナリにコンパイルすることで展開を容易にすることに焦点を当てています。 Goは非常に少数のキーワードで簡単に習得できるため、初心者にも経験豊富な開発者にも最適です。
このチュートリアルでは、コマンドラインからGoを使用してプログラミングワークスペースをインストールおよび構成する方法について説明します。 このチュートリアルでは、Ubuntu 18.04のインストール手順を明示的に説明しますが、一般的な原則は他のDebianLinuxディストリビューションにも適用できます。
前提条件
Ubuntu 18.04がインストールされたコンピューターまたは仮想マシンが必要です。また、そのマシンへの管理アクセスとインターネット接続が必要です。 このオペレーティングシステムは、Ubuntu18.04リリースページからダウンロードできます。
ステップ1—Goの設定
このステップでは、公式のGoダウンロードページから現在のリリースをダウンロードしてGoをインストールします。
これを行うには、現在のバイナリリリースtarballのURLを検索する必要があります。 また、このハッシュを使用してダウンロードしたファイルを確認するため、その横にリストされているSHA256ハッシュにも注意してください。
コマンドラインでインストールとセットアップを完了します。これは、コンピューターと対話するための非グラフィカルな方法です。 つまり、ボタンをクリックする代わりに、テキストを入力し、テキストを介してコンピューターからフィードバックを受け取ることになります。
shellまたはterminalとも呼ばれるコマンドラインは、コンピューターで毎日実行するタスクの多くを変更および自動化するのに役立ち、ソフトウェア開発者にとって不可欠なツールです。 。 あなたがより強力なことをすることを可能にすることができる学ぶべき多くのターミナルコマンドがあります。 コマンドラインの詳細については、Linuxターミナルの概要チュートリアルをご覧ください。
Ubuntu 18.04では、画面の左上隅にあるUbuntuアイコンをクリックして入力すると、ターミナルアプリケーションを見つけることができます。 terminal
検索バーに。 ターミナルアプリケーションアイコンをクリックして開きます。 または、 CTRL
, ALT
、 と T
キーボードのキーを同時に押して、ターミナルアプリケーションを自動的に開きます。
ターミナルが開いたら、Goバイナリを手動でインストールします。 次のようなパッケージマネージャーを使用できますが apt-get
、手動インストール手順を実行すると、有効なGoワークスペースを作成するために必要なシステムの構成変更を理解するのに役立ちます。
Goをダウンロードする前に、自宅にいることを確認してください(~
)ディレクトリ:
- cd ~
使用する curl
公式のGoダウンロードページからコピーしたtarballURLを取得するには:
- curl -LO https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz
次に、 sha256sum
tarballを確認するには:
- sha256sum go1.12.1.linux-amd64.tar.gz
上記のコマンドを実行して表示されるハッシュは、ダウンロードページにあったハッシュと一致する必要があります。 そうでない場合、これは有効なファイルではないため、ファイルを再度ダウンロードする必要があります。
Output2a3fdabf665496a0db5f41ec6af7a9b15a49fbe71a85a50ca38b1f13a103aeec go1.12.1.linux-amd64.tar.gz
次に、ダウンロードしたアーカイブを抽出し、システムの目的の場所にインストールします。 それを下に保つことがベストプラクティスと考えられています /usr/local
:
- sudo tar -xvf go1.12.1.linux-amd64.tar.gz -C /usr/local
これで、次のディレクトリが作成されます。 go
の中に /usr/local
ディレクトリ。
注:ただし /usr/local/go
は公式に推奨される場所です。一部のユーザーは別のパスを好むか、必要とする場合があります。
このステップでは、GoをUbuntu18.04マシンにダウンロードしてインストールしました。 次のステップでは、Goワークスペースを構成します。
ステップ2—Goワークスペースを作成する
Goがインストールされたので、プログラミングワークスペースを作成できます。 Goワークスペースには、ルートに2つのディレクトリが含まれます。
src
:Goソースファイルを含むディレクトリ。 ソースファイルは、Goプログラミング言語を使用して作成したファイルです。 ソースファイルは、実行可能なバイナリファイルを作成するためにGoコンパイラによって使用されます。bin
:Goツールによってビルドおよびインストールされた実行可能ファイルを含むディレクトリ。 実行可能ファイルは、システム上で実行され、タスクを実行するバイナリファイルです。 これらは通常、ソースコードまたはその他のダウンロードされたGoソースコードによってコンパイルされたプログラムです。
The src
サブディレクトリには、複数のバージョン管理リポジトリ( Git 、 Mercurial 、 Bazaar など)が含まれる場合があります。 これにより、プロジェクトにコードを正規にインポートできます。 Canonical インポートは、次のような完全に修飾されたパッケージを参照するインポートです。 github.com/digitalocean/godo
.
次のようなディレクトリが表示されます github.com
, golang.org
、またはプログラムがサードパーティライブラリをインポートする場合はその他。 次のようなコードリポジトリを使用している場合 github.com
、プロジェクトとソースファイルもそのディレクトリに配置します。 この概念については、このステップの後半で説明します。
一般的なワークスペースは次のようになります。
.
├── bin
│ ├── buffalo # command executable
│ ├── dlv # command executable
│ └── packr # command executable
└── src
└── github.com
└── digitalocean
└── godo
├── .git # Git repository 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}
The -p
オプションは教えます mkdir
すべてを作成するには parents
それらが現在存在しない場合でも、ディレクトリ内にあります。 使用する {bin,src}
次の引数のセットを作成します mkdir
両方を作成するように指示します bin
ディレクトリと src
ディレクトリ。
これにより、次のディレクトリ構造が確実に配置されます。
└── $HOME
└── go
├── bin
└── src
Go 1.8より前は、というローカル環境変数を設定する必要がありました。 $GOPATH
. $GOPATH
インポートされたサードパーティのソースコードと、作成したローカルソースコードの場所をコンパイラに通知しました。 明示的には必要なくなりましたが、多くのサードパーティツールがこの変数の設定に依存しているため、これは依然として良い習慣と見なされています。
あなたはあなたを設定することができます $GOPATH
グローバル変数をに追加することによって ~/.profile
. これをに追加することをお勧めします .zshrc
また .bashrc
シェル構成に従ってファイルします。
まず、開く ~/.profile
と nano
またはお好みのテキストエディタ:
- nano ~/.profile
あなたの $GOPATH
ファイルに以下を追加します。
export GOPATH=$HOME/go
Goがツールをコンパイルしてインストールすると、ツールは $GOPATH/bin
ディレクトリ。 便宜上、ワークスペースを追加するのが一般的です /bin
あなたのサブディレクトリ PATH
あなたの中で ~/.profile
:
export PATH=$PATH:$GOPATH/bin
これにより、システム上の任意の場所でGoツールを介してコンパイルまたはダウンロードしたプログラムを実行できるようになります。
最後に、を追加する必要があります go
あなたのバイナリ PATH
. あなたは追加することによってこれを行うことができます /usr/local/go/bin
行の終わりまで:
export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin
追加する /usr/local/go/bin
あなたに $PATH
すべてのGoツールをシステムのどこからでも利用できるようにします。
シェルを更新するには、次のコマンドを発行してグローバル変数をロードします。
- . ~/.profile
あなたはあなたの $PATH
を使用して更新されます echo
コマンドと出力の検査:
- echo $PATH
あなたはあなたを見るでしょう $GOPATH/bin
これはホームディレクトリに表示されます。 としてログインしている場合 root
、あなたは見るでしょう /root/go/bin
パスで。
Output/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin
のGoツールへのパスも表示されます /usr/local/go/bin
:
Output/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/root/go/bin:/usr/local/go/bin
Goの現在のバージョンを確認して、インストールを確認します。
- go version
そして、次のような出力を受け取る必要があります。
Outputgo version go1.12.1 linux/amd64
これで、ワークスペースのルートが作成され、 $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
ライブラリを作成し、 $GOPATH/src/github.com/digitalocean/godo
マシン上のディレクトリ。
ダウンロードに成功したかどうかを確認できます godo
ディレクトリを一覧表示してパッケージ化します。
- ll $GOPATH/src/github.com/digitalocean/godo
次のような出力が表示されます。
Outputdrwxr-xr-x 4 root root 4096 Apr 5 00:43 ./
drwxr-xr-x 3 root root 4096 Apr 5 00:43 ../
drwxr-xr-x 8 root root 4096 Apr 5 00:43 .git/
-rwxr-xr-x 1 root root 8 Apr 5 00:43 .gitignore*
-rw-r--r-- 1 root root 61 Apr 5 00:43 .travis.yml
-rw-r--r-- 1 root root 2808 Apr 5 00:43 CHANGELOG.md
-rw-r--r-- 1 root root 1851 Apr 5 00:43 CONTRIBUTING.md
.
.
.
-rw-r--r-- 1 root root 4893 Apr 5 00:43 vpcs.go
-rw-r--r-- 1 root root 4091 Apr 5 00:43 vpcs_test.go
このステップでは、Goワークスペースを作成し、必要な環境変数を構成しました。 次のステップでは、いくつかのコードを使用してワークスペースをテストします。
ステップ3—簡単なプログラムを作成する
Goワークスペースを設定したので、「Hello、World!」を作成します。 プログラム。 これにより、ワークスペースが適切に構成されていることを確認し、Goに慣れることができます。 実際のプロジェクトではなく、単一のGoソースファイルを作成しているため、これを行うためにワークスペースにいる必要はありません。
ホームディレクトリから、次のようなコマンドラインテキストエディタを開きます。 nano
、および新しいファイルを作成します。
- nano hello.go
新しいファイルにプログラムを記述します。
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
このコードは fmt
パッケージ化して、 Println
で機能する Hello, World!
引数として。 これはフレーズを引き起こします Hello, World!
プログラムの実行時に端末に出力します。
出口 nano
を押すことによって CTRL
と X
キー。 ファイルを保存するように求められたら、を押します Y
その後 ENTER
.
終了したら nano
シェルに戻り、プログラムを実行します。
go run hello.go
The hello.go
プログラムにより、端末は次の出力を生成します。
OutputHello, World!
このステップでは、基本的なプログラムを使用して、Goワークスペースが適切に構成されていることを確認しました。
結論
おめでとう! この時点で、UbuntuマシンにGoプログラミングワークスペースがセットアップされ、コーディングプロジェクトを開始できます。