Chromebook を導入する 6 — Git & Go コンパイラ
- Chromebook を導入する 1
- Chromebook を導入する 2 — Linux サブシステム
- Chromebook を導入する 3 — GnuPG & OpenSSH
- Chromebook を導入する 4 — Flatpak で Firefox を導入する
- Chromebook を導入する 5 — APT で Firefox を導入する
- Chromebook を導入する 6 — Git & Go コンパイラ ← イマココ
- Chromebook を導入する 7 — VS Code の導入
さて。
色々と脱線したが「Chromebook を導入する 3」の続きでようやく git の設定を始めるですよ。
その前に Linux サブシステムの日本語化と pinentry-gnome3
の導入を済ませておく。
以降はこれらの設定が終わってることを前提に書いていく。
Git のセットアップ
Git は最初から入っているのだが,見ての通り最新バージョンではない(2024-05-06 時点の最新は 2.45.0)。
Ubuntu であれば PPA から最新をインストールできるのだが, Debian にはそういうのはないらしい。 最新バージョンが欲しければソースコードをビルドして自前で用意しないとダメなようだ。 なんだかなぁ。 Debian 系ってそういう文化なのかね。
というわけで git のバージョンアップは諦めて,とっととセットアップを済ませてしまおう。
最初に ~/.config/git/config
ファイルを作っておく。
中身は空でよい。
$ touch ~/.config/git/config
こうしないと勝手に ~/.gitconfig
ファイルを作ってくれやがるので,ホームディレクトリが煩くなるのだ。
ファイルを作ったら初期設定を行う。 初期設定なんか滅多にやらないので忘れてしまってるよ(笑) まずは基本情報から。
$ git config --global user.name "username"
$ git config --global user.email "username@example.com"
実際には自分の名前とEメールアドレスで置き換えること。
次は電子署名関連のの設定
$ git config --global user.signingkey 4F56CCE34EB6819E
$ git config --global commit.gpgSign true
$ git config --global tag.gpgSign true
これでコミットおよびタグ付与の際に電子署名を付けてくれる。
user.signingkey
の後ろの 4F56CCE34EB6819E
の部分は各自の電子署名鍵の鍵 ID で置き換えること。
鍵 ID は gpg --list-keys
コマンドの出力で分かる。
以下の設定はお好みで。
$ git config --global core.autocrlf input
$ git config --global init.defaultBranch main
私はリモートの Git リポジトリへのアクセスに ssh を使うことを想定している(「Chromebook を導入する 3」を参照のこと)。 もし HTTPS アクセスを使う場合は credenntial 情報を管理するためのツールの導入や設定が必要になるかも知れない。
設定した内容は
$ git config --global -l
で確認できる。
Go コンパイラのインストール
Chromebook の Linux サブシステムには GCC や Go コンパイラは入ってない。 いずれも APT でインストールできるのだが APT の Go コンパイラはバージョンが古いので(そういうとこよ),公式サイトからバイナリを取ってきて展開する。
$ cd /usr/local/src
$ sudo curl -L "https://go.dev/dl/go1.22.2.linux-amd64.tar.gz" -O
$ cd ..
$ sudo tar xvf src/go1.22.2.linux-amd64.tar.gz
$ sudo mv go go1.22.2
$ sudo ln -s go1.22.2 go
Go コンパイラへの PATH は /etc/profile
に /usr/local/go/bin
を追記しておけばいいだろう。
これで
$ go version
go version go1.22.2 linux/amd64
と起動が確認できた。
Git と Go コンパイラの動作を確認する
今回はあらかじめ GitHub に動作確認用のリポジトリを作っておいた。
これをローカルに git clone
する。
go run hello.go
実行で “Hello World!” が表示されるところまで確認できた。
ソースコードはこんな感じ。
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
このコードの “World” の部分を “Chromebook” に書き換えて GitHub にプッシュするところまでやってみる。
上手く行ったかな? ちなみにこの時点ではエディタに vim を使っている。 GitHub サイトで確認してみよう。
うんうん。 ちゃんとコミットに電子署名が付いてるね。 これでよーやく VS Code を導入する準備ができたよ。
【2024-05-12 追記】 Go の開発環境を外部ストレージに構築する
内部ストレージを十分備えている Chromebook なら以下の設定は不要だと思う。 たとえば ASUS CX34 シリーズなら十分なストレージ容量を持つ(これで税込8万円切るもんなー)。 まぁ,私の場合は14インチという時点で対象外だが。
Go の環境設定については以下の拙文が参考になる。
$ ln -s /mnt/chromeos/removable/SD\ Card/linux ~/ws
てな感じに外部ストレージのディレクトリをシンボリックファイルで繋いだので, ~/.profile
に以下の内容を追記してみた。
if [ -d "$HOME/ws/go" ] ; then
export GOPATH="$HOME/ws/go"
export GOCACHE="$GOPATH/go-build"
export GOBIN="$GOPATH/bin"
PATH="$GOBIN:$PATH"
fi
この設定が効いてる状態で go env
コマンドの結果を見てみる。
注目する変数は GOPATH
, GOBIN
, GOCACHE
, GOCMODACHE
あたり。
これらの設定が外部ストレージを指示していれば問題ない。
外部ストレージのファイルモード
外部ストレージのファイルにファイルを置くと何故か実行権限 x
が付いてしまう。
しかも chmod
コマンドで変更できないようだ。
ちなみに chown
コマンドも効かない。
軽くググってみたら以下の記事を見つけた。
こちらは外部ストレージファイルを実行できないというものだが,私の環境を見ると /etc/mtab
を見ると
9p /mnt/chromeos 9p rw,nosuid,nodev,relatime,access=any,msize=65560,trans=fd,rfd=18,wfd=18 0 0
となっていて noexec
が外されているようだ。
これによって /mnt/chromeos
以下の外部ストレージの全ファイルが実行可能ファイルになってしまうっぽい?
これはちょっと取り扱い注意かも。 それにしても,なんで安全でない方に倒すかね。
念のため git にも以下の設定を加えておく。
$ git config --global core.filemode false
$ git config --global core.ignorecase false
これでうっかり実行可能ファイルとしてコミットしてしまうこともないだろう。
ちなみにファイル名の大文字小文字も区別しないので core.ignorecase
も false
にしておく(これは外部ストレージのフォーマットのせいかな)。
ブックマーク
参考
- 【Amazon.co.jp限定】 ASUS Chromebook クロームブック Flip CX1 11.6インチ 2-in-1 タッチスクリーン 日本語キーボード 重量1.32kg トランスペアレントシルバー CX1102FKA-MK0037
- ASUS (Release 2022-11-04)
- Personal Computers
- B0BKKF7JHV (ASIN), 0195553939942 (EAN), 195553939942 (UPC)
- 評価
ASUS 製 Chromebook。11.6インチディスプレイ,8GBメモリ,32GBストレージ。正直,ストレージはもう少し欲しかったがメモリ容量優先で選んだ。
- CloudValley 0.6mm 超薄型 ウェブカメラカバー、メタルカメラカバー カメラ目隠し MacBook air・ノートパソコン・iMac・デスクトップ・PC・MacBook Pro・iPad・iPhone 8/7/6用、プライバシーウェブカメラプロテクション 【2本セット】ブラック
- CloudValley
- Personal Computers
- B079MCPJGH (ASIN), 0654070887322 (EAN), 654070887322 (UPC)
- 評価
ノートPCに見られるのが嫌なので目隠しした。
- エレコム ワイヤレスマウス Bluetooth Slint M-TM10BBBU/EC 薄型 静音 4ボタン プレゼンモード機能付 Windows Mac Android iOS iPadOS FireOS対応 ネイビーブルー
- エレコム(ELECOM) (Release 2020-11-24)
- Personal Computers
- B08LMYWKZD (ASIN), 4549550198189 (EAN)
- 評価
静音マウスを使いだしたら普通のマウスがカチカチ煩いと感じるようになってしまい,仕方ないので Bluetooth 無線マウスも静音マウスに替えた。単三電池一本で駆動するの助かる。
- 【 サンディスク 正規品 】 SanDisk microSDカード 128GB UHS-I Class10 10年間限定保証Ultra SDSQUAB-128G-GH3MA 新パッケージ
- SanDisk (Release 2023-09-29)
- Personal Computers
- B0CH2X5LBX (ASIN), 0619659201579 (EAN), 619659201579 (UPC)
- 評価
Chromebook の外部ストレージとして購入。
- Anker PowerExpand+ 7-in-1 USB-C PD メディア ハブ 85Wパススルー充電 Power Delivery USB-Cポート HDMI USB-Aポート
- Anker
- B07KJWYQJW (ASIN), 0848061003871 (EAN), 848061003871 (UPC)
- 評価
購入した Chromebook と周辺機器を繋ぐために購入。 USB-C は電源用(Power Delivery 対応)とデータ用の口がある。 HDMI の口もありモニタと繋ぐこともできる。 USB-DAC も繋がる。助かる。
- Chromebook仕事術 最速で業務に生かす基本+活用ワザ できるビジネスシリーズ
- 株式会社インサイトイメージ (著)
- インプレス 2021-08-04 (Release 2021-08-04)
- Kindle版
- B09BMPZ3BZ (ASIN)
- 評価
Chromebook の操作・設定の基本部分について一通り網羅している感じ。参考になった。
- スーパーユーザーなら知っておくべきLinuxシステムの仕組み
- Brian Ward (著), 柴田 芳樹 (翻訳)
- インプレス 2022-03-08 (Release 2022-03-08)
- 単行本(ソフトカバー)
- 4295013498 (ASIN), 9784295013495 (EAN), 4295013498 (ISBN)
- 評価
版元で PDF 版が買える。セキュリティ・エリアにも持ち込めるよう紙の本を買ったのだが,オンライン読書会が始まったので PDF 版も購入。Linux システムの扱い方に関するリファレンス本として優れている。最初に軽く流し読みして,必要に応じて該当項目を拾い読みしていけばいいだろう。
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。
- 改訂2版 わかばちゃんと学ぶ Git使い方入門
- 湊川あい (著), DQNEO (著)
- シーアンドアール研究所 2021-06-12 (Release 2021-06-12)
- Kindle版
- B096TH798S (ASIN)
この機会に読んでみようか...