LinuxデスクトップにShadowrocketをインストールする方向けの記事です。まずディストリビューションとCPUアーキテクチャを確認し、ダウンロードページからdeb、rpm、AppImageのいずれかを選びます。パッケージマネージャーでインストールするか、AppImageに実行権限を付与して起動してください。最後に、インストール、デスクトップでの起動、接続設定の問題を切り分けて対処します。
ディストリビューション、アーキテクチャ、パッケージ形式を確認する
Shadowrocket(Shadowrocket)のLinux版インストーラーは、当サイトのダウンロードページから入手できます。パッケージ形式はディストリビューション、アーキテクチャはデバイスとシステム環境に応じて選んでください。拡張子が同じでも、パッケージ内のプログラムが現在のCPUに対応するとは限りません。AppImageも、すべてのアーキテクチャで使えるわけではありません。
デスクトップの端末で次の2つのコマンドを実行します。1つ目はディストリビューション情報を表示するもので、ID、ID_LIKE、PRETTY_NAMEを確認します。2つ目はカーネルが認識しているマシンアーキテクチャを表示します。一般的なx86_64とaarch64は異なるアーキテクチャです。ダウンロードページに記載されている対応範囲に従って選択してください。
cat /etc/os-release
uname -m
| システム環境 | まず確認する形式 | インストール方法 |
|---|---|---|
| Debian、Ubuntuおよび互換環境 | deb | aptでローカルパッケージをインストールし、ソフトウェアリポジトリから利用可能な依存関係を処理します。 |
| Fedoraおよびdnfを使用する互換環境 | rpm | dnfでローカルパッケージをインストールし、トランザクション内の依存関係の変更を確認します。 |
| その他のデスクトップディストリビューション | AppImage | まずアーキテクチャと実行環境を確認してから、実行権限を付与します。 |
debのインストール:aptでローカルパッケージと依存関係を処理する
DebianまたはUbuntuのデスクトップでは、aptを使ったdebのインストールをおすすめします。debをダブルクリックして開くソフトウェアインストーラーでもローカルパッケージを処理できますが、端末ならエラーの詳細がすべて表示されるため、依存関係の不足、アーキテクチャの不一致、権限不足を切り分けやすくなります。
-
システムを確認する
cat /etc/os-releaseとuname -mを実行します。現在の環境でaptを使用していることを確認し、アーキテクチャを控えてください。 -
インストールパッケージを入手する
ダウンロードページのLinuxセクションを開き、対応するdebを選択します。ダウンロード後のファイル名はそのまま使用し、拡張子を手動で変更しないでください。
-
ファイルのパスをコピーする
ファイルマネージャーで保存場所を確認し、ファイルの完全なパスをコピーします。下のコマンドを実行し、端末の入力欄にパスを貼り付けてください。入力内容の前後に引用符を追加する必要はありません。
-
インストールする
aptが表示するインストール内容と依存関係の変更を確認し、問題がなければ続行します。インストール完了後は、デスクトップのアプリ一覧からShadowrocketを起動してください。GUIアプリをsudoで起動しないでください。
read -r -p 'debファイルの完全なパスを貼り付けてください:' pkg
pkg=$(realpath -- "$pkg")
sudo apt install "$pkg"
ここでのpkgは端末の変数で、入力したファイルの実際のパスを保持します。コマンド内の二重引用符は、パスに空白が含まれていても正しく扱うためのものです。realpathでパスを絶対パスに変換し、aptがファイル名だけの入力をソフトウェアリポジトリ内のパッケージ名と誤認するのを防ぎます。実行前に、入力したパスが実在するdebファイルを指していることを確認してください。
- 依存関係を満たせないと表示される場合:不足している依存関係と必要な条件を確認し、現在のディストリビューションが対応しているかを調べてください。
sudo apt updateで更新されるのは、設定済みリポジトリのインデックスです。互換性のないパッケージが対応するようになるわけではありません。 - アーキテクチャが一致しないと表示される場合:
uname -mの結果とダウンロードページのアーキテクチャ情報を再確認してください。強制オプションでチェックを回避しないでください。 - 別の方法で処理した依存関係のトランザクションが未完了の場合:
sudo apt --fix-broken installが提示する変更内容を確認し、必要なソフトウェアが誤って削除されないことを確かめてから続行してください。
rpmのインストール:dnfでトランザクションを確認する
dnfを使用するシステムでは、ローカルのrpmをdnfでインストールすると、rpmコマンドで直接インストールするより依存関係を処理しやすくなります。rpmはパッケージ形式であり、互換性を保証するものではありません。ディストリビューションによって、リポジトリ、システムライブラリ、パッケージングの規約は異なります。
read -r -p 'rpmファイルの完全なパスを貼り付けてください:' pkg
pkg=$(realpath -- "$pkg")
sudo dnf install "$pkg"
このコマンドはローカルパッケージをdnfに渡し、現在のシステムのリポジトリから利用可能な依存関係を取得します。トランザクションの概要が表示されたら、新規インストール、アップグレード、削除されるソフトウェアを1つずつ確認してください。インストール対象と関係のない置き換えや削除が多数表示された場合は、トランザクションを中止し、パッケージの対応環境を再確認してください。
debのパス確認
- インストールツール
apt install- 指定するもの
- ローカルdebの絶対パス
- 依存関係の取得元
- 現在設定されているリポジトリ
- 成功の判断基準
- インストール処理がエラーなく完了する
インストーラーでエラーが出た場合は、まずパッケージと依存関係の問題を解決してください。接続のトラブルシューティングには進まないでください。
rpmのパス確認
- インストールツール
dnf install- 指定するもの
- ローカルrpmの絶対パス
- 依存関係の取得元
- 現在有効なリポジトリ
- 中止する条件
- アーキテクチャの不一致、または依存関係を満たせない場合
依存関係のチェックを省略して、失敗した処理を見かけ上成功させないでください。
端末にdnf: command not foundと表示された場合は、まずシステムが実際に使用しているパッケージマネージャーを確認してください。rpmを扱えるディストリビューションでも、すべてがdnfを使用するわけではありません。コマンドをそのまま使うためだけに、別のパッケージマネージャーをインストールしないでください。ディストリビューションの説明とダウンロードページの対応範囲を確認し、適切な方法を選んでください。
AppImageの起動:実行権限を付与して出力を確認する
AppImageは通常、単一の実行可能ファイルとして動作し、aptやdnfで通常のシステムパッケージとして登録するものではありません。まず現在のユーザーが所有する固定ディレクトリにファイルを置き、実行権限を付与してください。初回起動時はデスクトップセッションの端末から実行し、エラー出力を確認できるようにします。GUIプログラム全体をsudoで実行しないでください。
read -r -p 'AppImageファイルの完全なパスを貼り付けてください:' app
app=$(realpath -- "$app")
chmod u+x -- "$app"
"$app"
chmod u+xはファイル所有者に実行権限を付与します。chmod +xも実行権限の付与によく使われる書き方ですが、ここでは所有者の実行ビットだけを変更します。変数を二重引用符で囲むことで、パスに空白が含まれていても1つの引数として渡せます。実行権限を付与しても、アーキテクチャは変わらず、システムライブラリも追加されません。
Permission deniedと表示される場合:ls -l -- "$app"で実行ビットを確認し、実行が禁止されたマウントポイントにファイルが置かれていないか調べてください。実行ビットが設定済みでも、マウントオプションnoexecによって起動できないことがあります。Exec format errorと表示される場合:アーキテクチャとファイル形式を確認してください。権限の変更を繰り返す必要はありません。この種のエラーの主な原因は権限ではありません。- FUSE関連ライブラリの不足が表示される場合:現在のディストリビューションのドキュメントに従い、互換性のあるコンポーネントをインストールしてください。パッケージ名はディストリビューションによって異なるため、別のシステムのパッケージ名をそのまま使わないでください。
- ディスプレイサービスに接続できないと表示される場合:ログイン済みのグラフィカルデスクトップセッションで実行していることを確認してください。通常のSSH端末やディスプレイサービスのない環境は、デスクトップでの起動環境とは異なります。
初回起動後:インストール成功と接続成功を切り分ける
Shadowrocketのウィンドウが開けば、デスクトップでの起動段階まで進んでいます。ただし、利用中のサービスがインポート済みであることや、システムの通信が想定どおりに処理されていることを意味するわけではありません。インストールの問題はインストーラーのログで、通信の問題はアプリ内の設定と接続状態で確認し、それぞれ別に対処してください。
Home(ホーム)で現在のサービス設定を確認し、利用中のサービス情報に記載されたアドレス、ポート、プロトコル、認証項目と照合してください。プロトコル名からポート番号を推測しないでください。たとえば、サービス情報にポート番号が443と記載されている場合は、その値を入力します。プロトコルを変更したからといって、ポート番号を別の値に変えてはいけません。アクセス情報を含むリンクをインポートする際は、リンク全体を公開ログやスクリーンショットに載せないでください。
Config(設定ファイル)
おすすめGlobal Routing(グローバルルーティング)は、現在の設定ファイルのルールに従って振り分けます。まずConfig(設定ファイル)でファイルが選択されていることを確認してください。前のルールに一致しない接続はFINALで指定されたポリシーに従い、必ず直接接続されるわけではありません。
適したケース:確認済みの設定ファイルを使い、通信先ごとに振り分ける場合。
Proxy(プロキシ)
クライアントが処理する接続の範囲内でプロキシを使用します。ルールによる振り分けが問題に関係しているかを確認するのに役立ちます。ただし、OS上のすべてのプロセスやプロトコルが処理対象になるわけではありません。
適したケース:利用可能なサービスがあり、ルールに関係する問題の範囲を一時的に絞り込みたい場合。
Direct(直接接続)
接続先へ直接接続します。現在の接続先にユーザーが利用中のプロキシサービスが必要な場合、Directのままではそのサービスが利用可能か確認できません。
適したケース:基本的なネットワークと直接接続時の動作を確認する場合。
Global Routing内のScene(シーン)は、設定済みのシーンに応じて使用してください。初回インストール時のトラブルシューティングで既定の選択肢にするものではありません。Settings(設定)のOn Demand(オンデマンド接続)は、条件に応じて接続を開始する機能であり、依存関係の問題を解決したりファイルに実行権限を付与したりするものではありません。まず手動で接続を確認してから、自動化の条件を設定してください。表示される項目はプラットフォームによって異なります。
インストール時のよくある質問とアップデート
debをダウンロードしたのにシステムで使えません。拡張子をrpmに変更すればよいですか?
いいえ。拡張子で内部のパッケージ形式は変わりません。cat /etc/os-releaseを実行してシステムを確認し、ダウンロードページから対応する形式を選んでください。ファイル名の変更やパッケージマネージャーのチェック回避でインストールしないでください。
AppImageにchmod +xを実行したのに、ダブルクリックしても開かないのはなぜですか?
グラフィカルデスクトップの端末からファイルを直接実行し、最初のエラーを確認してください。権限エラーなら実行ビットとマウントオプションを、アーキテクチャの不一致やライブラリ不足なら該当する項目を確認します。ダブルクリックしてウィンドウが表示されないだけでは、原因を特定できません。
インストールに成功したのに、アプリメニューに表示されないのはなぜですか?
デスクトップのアプリ検索を閉じて、もう一度開いてください。debやrpmでメニューに表示されるかは、パッケージにデスクトップ用の起動ファイルが含まれているかによります。AppImageは自動で登録されるとは限りません。実行コマンド名を推測したり、複数の形式を繰り返しインストールしたりしないでください。
今後アップデートするとき、古いファイルをすべて削除する必要がありますか?
まず既存の設定を保存してください。パッケージの識別情報とアップグレード関係に互換性があれば、debやrpmは対応するパッケージマネージャーで更新できます。競合が表示された場合は処理を止め、原因を確認してください。AppImageはアプリを終了してからファイルを置き換え、実行権限とショートカットのパスを確認します。
トラブルシューティングを終える際は、ディストリビューション名、アーキテクチャ、インストール形式、実行したコマンド、エラー全文を控えてください。「開かない」という情報だけより、原因の特定に役立ちます。ログを共有する前に、サブスクリプションへのアクセス情報、パスワードなどの機密情報を削除してください。アプリが正常に起動しているのに通信できない場合は、インストールコマンドを繰り返さず、接続と設定を確認してください。