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実行環境を容易にハンドリングするため、同一ディストリビューションに対して複数の実行環境を構成する方法を実施しています。御興味があれば以下の記事も参照ください。