WSL環境にてインストール直後のUbuntu(24.04 LTS)環境へtuiskyを導入した際のメモになります。
- 2024/08/21:Ubuntu cargoパッケージと、cargoパッケージが依存するパッケージの導入順を入れ替え
- 2024/08/20:Ubuntu cargo関連パッケージを導入した場合の状況について追記
まとめ
- tuisky導入前に必要なこと
- Cargoが依存するパッケージの導入
- gcc
- pkgconf
- libssl-dev
- Cargo(Rust言語のビルドシステム/パッケージマネージャ)の導入
- Cargoが依存するパッケージの導入
- Cargoを利用してtuisky導入
コマンドだと以下のようになります。
# gcc導入
sudo apt install gcc
# pkgconf導入
sudo apt install pkgconf
# libssl-dev導入
sudo apt install libssl-dev
# Cargo導入
curl https://sh.rustup.rs -sSf | sh
. "$HOME/.cargo/env"
# tuisky導入
cargo install tuisky
以降に記載する検証経緯では、まずCargoを導入してエラーになり、順次依存パッケージを解消していったものになります。そのためこれから利用される方は、上記の順番でスムーズに導入できると思います。
検証経緯
tuisky Webサイト掲載のインストール手順
- crates.io: Rust Package Registry (tuisky Webサイト) https://crates.io/crates/tuisky/
ReadmeにありますようにArch Linux(パッケージマネージャのコマンドparuでインストール可能)以外では、以下のコマンドでインストールするように記述されています。
cargo install tuisky
クリーンなUbuntuなど、cargoコマンドが存在しない環境ではエラーになります。
Command 'cargo' not found, but can be installed with:
sudo snap install rustup # version 1.27.1, or
sudo apt install cargo # version 1.73.0+dfsg0ubuntu1-0ubuntu1
See 'snap info rustup' for additional versions.
Cargoの導入
cargoコマンドは、Cargoと呼ばれるRust言語のビルドシステムおよびパッケージマネージャに含まれます。そのためまずCargoの導入が必要となります。Ubuntuでは前記のようにコマンド実行時のエラーでsudo snap install rustupやsudo apt install cargoのコマンドによる導入が提案されます。それらでも問題ないと思いますが(→だめでした。当記事「補足:Ubuntu cargo関連パッケージを利用した場合」を参照)、ここではCargo Webサイトのインストール手順に記載されているインストーラを利用する方法を紹介しています。
curl https://sh.rustup.rs -sSf | sh
実行すると途中でインストール方法についての問い合わせがあります。特に問題なければデフォルトの1番を選択します。
1) Proceed with standard installation (default - just press enter)
2) Customize installation
3) Cancel installation
インストーラが完了復帰すると、$HOME/.cargo/envというディレクトリを環境変数PATHに追加するよう指示が表示されます。自分の環境では$HOME/.bashrcおよび$HOME/.profileの末尾に環境変数PATHに追加する設定の行が自動的に追記されました。また. "$HOME/.cargo/env"を実行すれば再ログインせずにcargoコマンド等にパスを通して作業ができることが提示されています。前記まとめのコマンドではそのように記載しています。
これでCargoの準備ができましたのでcargo install tuiskyを実行すると、ビルドの途中でccコマンドが存在しないとエラーになります。
gccの導入
ccコマンドはC言語のコンパイラ/リンカ等でgcc(GNU Compiler Collection)パッケージに含まれますので、gccパッケージを導入します。
sudo apt install gcc
これでgccの準備ができましたのでcargo install tuiskyを実行すると、ビルドの途中でopenssl-sys関連のビルドのエラーになり、後続の表示でpkg-configコマンドが存在しないとエラーになっていることが確認できます。
(中略)
pkgconfの導入
pkg-configコマンドはpkgconfパッケージに含まれますので、pkgconfパッケージを導入します。
sudo apt install pkgconf
これでpkgconfの準備ができましたのでcargo install tuiskyを実行すると、ビルドの途中で同様にopenssl-sys関連のビルドのエラーになりますが、今度はコマンドではなくライブラリ関連に起因しているように思われます。
(中略)
libssl-devの導入とtuiskyビルドの完了
openssl-sys関連に必要なものはlibssl-devパッケージに含まれるようです(後述の「参考ページ」の3番に記載したサイトを参照)ので、libssl-devパッケージを導入します。
sudo apt install libssl-dev
これでlibss-devの準備ができましたのでcargo install tuiskyを実行すると、無事ビルドが完了します。
以上の経緯から「まとめ」に記載したように、まずCargoが依存するgcc・pkgconf・libss-devパッケージを先にインストールしてからcargoをインストールするとスムーズに導入できると思います。
Let's tuisky
tuiskyコマンドを実行するとidentifier(ハンドル)とパスワード(アプリパスワードを利用するとよいでしょう)の入力が求められるので、入力して認証を通過するとBlueskyクライアントとしての利用ができます。操作方法はtuiskyサイトのUsageを参照してください。
補足:Ubuntu cargo関連パッケージを利用した場合
「Cargoの導入」で触れましたが、Ubuntuではcargoコマンドに関連するパッケージが存在しますので、それを導入した場合の状況を以下に記します。2024/8現在の状況ですので、将来的に対応される可能性はあります。
apt cargoパッケージの場合
UbuntuでパッケージされているCargoバージョンは1.7.5ですが、tuisky 0.1.1では必要となるCargoのバージョンが1.8.0以上のためインストールに失敗しました。
$ sudo apt install cargo
(省略)
$ cargo install tuisky
Updating crates.io index
error: cannot install package `tuisky 0.1.1`, it requires rustc 1.80 or newer, while the currently active rustc version is 1.75.0
`tuisky 0.0.5` supports rustc 1.74
snap rustupパッケージの場合
セキュリティ関連回避インストールが必要となるため、これ以上の確認は断念しています。
$ sudo snap install rustup
(パスワード確認省略)
error: This revision of snap "rustup" was published using classic confinement and thus may perform
arbitrary system changes outside of the security sandbox that snaps are usually confined to,
which may put your system at risk.
If you understand and want to proceed repeat the command including --classic.
参考ページ
- crates.io: Rust Package Registry (tuisky Webサイト)
- Installation - The Cargo Book
- rust で failed to run custom build command for `openssl-sys` が出るときにすること
関連情報
当検証にあたり、WSLでのクリーンなLinux実行環境を容易にハンドリングするため、同一ディストリビューションに対して複数の実行環境を構成する方法を実施しています。御興味があれば以下の記事も参照ください。