新型コロナ禍以降は在宅勤務で、そもそも我が家の電気料金は増加気味なのですが、それにも増しての最近の電気料金の高騰を鑑みて、家庭内の省電力化のために消費電力の大きい「Intel入ってる」なマシンに代えて、しばらく前に購入はしたもののあまり稼働していなかったMicrosoftのWindows Dev Kit 2023にUbuntuを入れて使い始めました。
そんな訳で、メインの開発環境をこのWindows Dev Kit 2023で動くUbuntuに以降しようとゴニョゴニョと画策しているのですが、その際の作業の過程を自分のためにもメモしていこうかな?と…
まずはMicrosoft Edit (Microsoft Text Editor)
最近オープンソースでリリースされたMicrosoft謹製の軽量テキストエディターです。
リポジトリの名前がedit.gitで、出来上がった実行ファイルもeditになっちゃう辺りが実にMicrosoftらしいですが、これもこの際だからインストールしてみました。
git clone https://github.com/microsoft/edit.git microsoft_edit
う〜ん、やっぱりリポジトリの格納ディレクトリがeditなのはちょっと…と言うことで、ファイルはmicrosoft_editに展開しましたw
Nodeならnvm、PythonだとPyEnvやAnacondaなどと同じようにRustのバージョン管理や環境構築をサポートしてくれるツールRustupが入っていないなら以下のようにしてまずはaptでrustupをインストールします。
sudo apt install rustup
続いて、インストールされたrustupを使いRustの最新バージョンnightlyビルドをインストールします。
※ドキュメントREADME.mdでそのように支持されていたので素直に従いましたが、安定ばんのRustでビルド可能かどうか?は未確認です。
rustup install nightly
続いて、同じくrustupを使いARM64 Linux向けのツールチェインnightly-aarch64-unknown-linux-gnuをインストールします。
rustup component add rust-src --toolchain nightly-aarch64-unknown-linux-gnu
ここまででRustを使ってのeditのビルド準備は整ったので、さっそくRustのビルドシステムcargoでのビルドのためのコマンドを入力します。
cargo build --config .cargo/release.toml --release
いくつかの警告は出ると思いますが、エラーが起きずに最後に以下のような表示が出ればビルドは成功していると思われます。
Finished `release` profile [optimized + debuginfo] target(s) in 0.05s
試しに出来上がった実行ファイルを起動してみましょう。
./target/release/edit
自分もこれで「お、出来上がったじゃん!」と思ったのですが、すぐに足りない機能があったのに気がつきました。
ここでキーボードのCtrl-F(Ctrlキー+Fキー)を押して文字検索を行おうとしたら、以下のようなエラーが出てしまいまいた。
これは、どうやらeditでは編集中のテキスト内で文字列の検索を行おうとする場合、Unicodeでの様々な文字操作をサポートしてくれるライブラリICU(International Components for Unicode)が必要になるのですが、これがインストールされていない状態でeditをビルドしてしまうとこのエラーが起きるようです。
UbuntuでこのICUをインストールするにはaptの場合には以下のようになります。
sudo apt-get install libicu-dev
ICUのインストールが終わったならば、もう一度先ほどのcargoでのビルドのためのコマンドを入力します。
cargo build --config .cargo/release.toml --release
もし、ここで以下のようにcc(Cコンパイラー、リンカー)コマンドが無いよ的なエラーが出たら、以下のようにアプリビルドのための一連のパッケージをインストールしておきます。
※でも、大抵の場合はもう入っていると思うけど…
Compiling edit v1.1.0 (/Users/Shared/Develop/Rust/microsoft_edit)
error: linker `cc` not found
ビルドに必要なツール類の一括インストール
sudo apt install build-essential
その後、もう一度cargoでのインストールを行えば今度は文字列検索も機能するはずです。
