LinuxデスクトップにShadowrocketをインストールする方向けに、ディストリビューションとCPUアーキテクチャの確認から、deb・rpm・AppImageの選択、インストール、実行権限の設定、初回接続の確認までを解説します。コマンドには実際にダウンロードしたファイルのフルパスを指定します。接続設定には、ご自身がすでに利用しているサービスの情報が必要です。
1. ダウンロード前にディストリビューションとCPUアーキテクチャを確認
ShadowrocketにはLinux版があります。入手方法は2種類です。iPhone / iPad版はApp Storeで2.99ドルの買い切りで、開発元はShadow Launch Technology Limitedです。システム要件はApp Storeの掲載内容をご確認ください。Mac(Appleシリコン・Intel)、Windows、Android、Linux版は無料です。この記事で使うインストールパッケージは、すべて当サイトの全プラットフォーム向けダウンロードページから入手してください。コマンドにダウンロードURLを直接記述する必要はありません。
ファイルの拡張子はパッケージ形式を示すもので、CPUアーキテクチャを表すものではありません。同じLinuxでも、x86_64とaarch64のパッケージは互換性がありません。まずターミナルで以下の読み取り専用コマンドを実行し、ディストリビューション名・バージョン・マシンアーキテクチャを確認してから、ダウンロードページに掲載されているパッケージ情報と照合してください。
cat /etc/os-release
uname -m
ディストリビューション情報
- 確認する項目
/etc/os-release- ID
- ubuntu、debian、fedoraなどのディストリビューションを判別します。
- ID_LIKE
- ファイルがあれば、ディストリビューションの系統を判断する参考になります。
- VERSION_ID
- システムのバージョンを記録します。ランタイムライブラリの互換性を調べる際に役立ちます。
同じ系統のディストリビューションでも、すべてのバージョンで同じバイナリが動くとは限りません。
アーキテクチャ情報
- 確認コマンド
uname -m- x86_64
- 一般的なIntel / AMD 64ビットアーキテクチャです。パッケージではamd64またはx86_64と表記されることが多くあります。
- aarch64
- ARM 64ビットアーキテクチャです。パッケージではarm64またはaarch64と表記されることが多くあります。
- 選択の基準
- 拡張子が同じでも混在させず、ダウンロードページに記載されたアーキテクチャを選んでください。
AppImageにもアーキテクチャの指定があります。異なるCPUアーキテクチャに変換する形式ではありません。
2. deb・rpm・AppImageの選び方
まずはディストリビューションのパッケージマネージャーに合った形式を選びましょう。インストール状態を記録でき、インストール時にリポジトリから取得可能な依存関係も処理できます。AppImageはアプリ本体をシステムディレクトリにインストールしたくない場合に便利ですが、システムライブラリ、デスクトップ環境、ファイルシステムのマウントオプションの影響を受けます。すべてのLinux環境でダブルクリックするだけで使えるわけではありません。
| 形式 | 主な対応システム | インストール・起動方法 | 注意点 |
|---|---|---|---|
| deb | Debian、Ubuntuおよび互換システム | apt installにローカルファイルのパスを指定 | ローカルファイルのパスにはスラッシュが必要です。フルパスを指定してください。 |
| rpm | Fedoraおよびdnfを使う互換システム | dnf installにローカルファイルのパスを指定 | その他のrpm系システムでは、依存関係や管理コマンドが異なる場合があります。 |
| AppImage | パッケージの動作要件を満たすLinuxデスクトップ | 実行権限を付与してファイルを起動 | アーキテクチャの一致、実行可能なマウント先、必要なランタイムライブラリが条件です。 |
システムを確認
cat /etc/os-releaseとuname -mを実行します。デスクトップの見た目だけでディストリビューションを判断しないでください。形式を選択
当サイトのダウンロードページでLinuxの項目を開き、ディストリビューションと掲載されているアーキテクチャに合うファイルを選んでダウンロードします。
ファイルのパスを記録
ファイルマネージャーでファイルのプロパティを確認し、ファイル名を含むフルパスを記録します。以下の手順でターミナルにパスを入力する際、追加で引用符を付ける必要はありません。
インストールを実行
該当する手順に従って操作します。パッケージマネージャーが表示する変更内容を確認し、システムコンポーネントが予期せず削除されないことを確かめてから続行してください。
起動を確認
インストール後、アプリケーションメニューから起動します。AppImageはターミナルから実行し、問題の特定に備えてエラー出力を記録してください。
3. Debian / Ubuntu:aptでローカルのdebをインストール
以下のコマンドはBashターミナルで実行します。最初の行では、ダウンロードしたdebのフルパスを入力します。ファイルのプロパティからコピーしたパスなどを使ってください。パスだけを入力し、空白を含む場合も手動で引用符を付ける必要はありません。後続のコマンドでは変数を二重引用符で保護しています。まずパッケージ情報を確認し、その後aptでインストールします。
read -r -p 'debファイルのフルパスを入力:' pkg
dpkg-deb --field "$pkg" Package Version Architecture
sudo apt update
sudo apt install "$pkg"
apt updateで更新されるのはシステムのパッケージインデックスであり、Shadowrocketの設定やサブスクリプションではありません。apt installはローカルのdebを読み込み、有効になっているソフトウェアリポジトリから依存関係をインストールしようとします。フルパスを指定することが重要です。スラッシュを含まないファイル名だけを入力すると、aptはリポジトリ内のパッケージ名として検索する場合があります。
- ファイルが見つからないと表示された場合は、
ls -l -- "$pkg"でパスを確認し、ダウンロードが完了していない一時ファイルを選んでいないか確認してください。 - 依存関係を解決できないと表示された場合は、システムのバージョンとソフトウェアリポジトリが適合しているか確認してください。特定の依存関係を解決するために、別のディストリビューションのリポジトリを混在させないでください。
- アーキテクチャが一致しないと表示された場合は、パッケージの
Architectureとuname -mの結果を照合し、ダウンロードページで適切なファイルを選び直してください。 - ロックが使用中と表示された場合は、システム更新など他のパッケージ管理処理が完了するまで待ってください。ロックファイルを直接削除しないでください。
4. Fedora系:dnfでローカルのrpmをインストール
dnfを使うシステムでは、低レベルのツールでファイルを強制的に書き込むのではなく、ローカルのrpmもパッケージマネージャーで処理するのがおすすめです。まずパッケージ情報を読み込み、名前とアーキテクチャを確認してからインストールします。以下の変数はdebの手順とは独立しているため、新しいBashターミナルでそのまま実行できます。
read -r -p 'rpmファイルのフルパスを入力:' pkg
rpm -qp --queryformat '%{NAME}\n%{VERSION}-%{RELEASE}\n%{ARCH}\n' "$pkg"
sudo dnf install "$pkg"
dnfは現在有効なソフトウェアリポジトリを使って依存関係を解決します。rpm形式を使うシステムでも、依存関係のバージョンがFedoraと完全に一致するとは限りません。nothing providesと表示された場合は、不足しているライブラリ名とバージョン条件を確認し、ディストリビューションへの対応状況を調べてください。依存関係をすぐに無視するのは避けてください。
- ソフトウェアリポジトリに接続できない場合は、まずシステムのリポジトリへのアクセスを復旧してください。インストールパッケージがローカルにあっても、依存関係がすべてローカルにあるとは限りません。
- トランザクションの概要に重要なデスクトップコンポーネントの削除が表示された場合は、操作をキャンセルし、パッケージとシステムの互換性を再確認してください。
- インストールに成功してもメニューに表示されない場合は、アプリケーションメニューでShadowrocketを再検索してください。必要に応じて、デスクトップセッションからログアウトして再ログインします。
- 依存関係のエラーを隠すために
--nodepsを使わないでください。インストール記録が成功になっていても、プログラムを実行できる環境が整っているとは限りません。
5. AppImage:実行権限、保存場所、起動方法
AppImageは通常、aptやdnfのインストール記録を作らず、単一ファイルとして実行します。ダウンロードフォルダーの整理で誤って削除しないよう、書き込み権限のある固定ディレクトリに保存することをおすすめします。まずフルパスを読み込み、ファイル所有者にだけ実行権限を追加してから、一般ユーザーとして起動します。
read -r -p 'AppImageファイルのフルパスを入力:' app
ls -l -- "$app"
chmod u+x -- "$app"
"$app"
chmod +xは実行権限を追加する一般的な方法です。ここではchmod u+xを使い、変更対象をファイル所有者に限定します。アプリの起動にsudoを付けるのは避けてください。ユーザー設定ディレクトリ内のファイルがroot所有になり、通常ユーザーで起動した際に設定を保存できなくなることがあります。
実行権限を付けたのにPermission deniedと表示されるのはなぜ?
まずls -l -- "$app"で所有者の実行権限を確認し、findmnt -T "$app"で保存先のマウントポイントを調べます。マウントオプションにnoexecが含まれている場合は、実行可能なローカルのユーザーディレクトリにファイルを移して再試行してください。ファイルを実行するために外付けドライブ全体のセキュリティ設定を変更しないでください。
ターミナルにlibfuse.so.2が見つからないと表示された場合、何をインストールすればよい?
一部のAppImageランタイムでFUSE 2互換ライブラリが必要な場合に表示されることがあります。まずaptまたはdnfの検索機能を使い、使用中のディストリビューションで提供されている互換ライブラリを調べ、システムのドキュメントを確認してからインストールしてください。パッケージ名はシステムによってlibfuse2、libfuse2t64など異なります。既存のFUSEコンポーネントを安易に削除しないでください。
Exec format errorが表示される場合、ファイルの権限不足?
まずバイナリのアーキテクチャを確認してください。file -- "$app"を実行し、uname -mの結果と照合します。chmodを再実行しても、x86_64のプログラムがARM向けに変換されるわけではありません。ファイル形式に問題がある場合は、ダウンロードが完了しているかも確認してください。
ダブルクリックしてもウィンドウが開かない場合、具体的なエラーを確認するには?
ターミナルから"$app"を実行し、最初に表示されるエラーメッセージを記録してください。共有ライブラリの不足、グラフィカルセッションを利用できない問題、サンドボックスの初期化失敗はそれぞれ原因が異なります。サンドボックスを無効にしたりrootで起動したりして一律に対処しないでください。
6. 初回接続:インストール・接続・ルールの問題を切り分ける
ウィンドウが開いても、アプリが起動したことを示すだけで、接続が利用できるとは限りません。Shadowrocketに接続サービスは付属していません。当サイトではノードやサブスクリプションを提供・販売・推奨していません。ご自身がすでに利用しているサービスの情報またはサブスクリプションを使い、インポート前に提供元を確認してください。サブスクリプションURL全体を公開スクリーンショット、ログ、ターミナル履歴に記載しないよう注意しましょう。
Homeでインポートした項目と現在の選択を、Configで使用中の設定を、Settingsで関連する設定項目を確認します。プラットフォームによって表示や操作方法が異なる場合があります。実際の画面に従って操作し、スマートフォンのVPN許可手順をそのままLinuxに当てはめないでください。システムからネットワーク権限を求められた場合は、用途を確認してからシステムの案内に従って許可してください。
Global Routing → Config
推奨現在の設定に従って、処理対象になったリクエストを振り分けます。まず設定が有効であることを確認し、その後ルールの適用状況を確認してください。たとえばDOMAIN-SUFFIXはドメインのサフィックスに一致し、FINALは最後に適用されるルールです。
適した用途:内容を確認済みの設定があり、普段からルールに沿って利用する場合。
Global Routing → Proxy
処理対象になったリクエストをプロキシ経由にします。接続の問題とルールの問題を切り分けるため、一時的に使えます。システム上のすべてのプログラムの全通信が自動的に処理対象になるわけではありません。
適した用途:利用可能な接続があり、ルールがアクセスに影響しているか一時的に調べる場合。
Global Routing → Direct
処理対象になったリクエストを直接接続します。この設定で特定のサイトが開いても、確認できるのは直接接続の経路が利用可能ということだけで、プロキシサービスが正常だとは判断できません。
適した用途:直接接続時の状態と比較し、プロキシ経路の問題を切り分ける場合。
ブラウザーとターミナルで挙動が異なる場合は、システムプロキシ、アプリ独自のプロキシ設定、環境変数を分けて確認してください。ターミナルのプログラムがデスクトップのシステムプロキシを参照するとは限りません。ローカルの待ち受けポートを固定の番号だと思い込まず、現在の設定に表示されるプロトコル、アドレス、ポートを確認してください。
env | grep -iE '^(http|https|all|no)_proxy='
このコマンドは現在のターミナルに設定されているプロキシ環境変数を表示するだけで、設定を変更しません。何も表示されなくても、Shadowrocketが起動していないとは限りません。値が表示された場合も、指定されたローカルポートが実際に待ち受けていることを確認してください。問題を調べる際は一度に一項目だけ変更し、変更前後のアクセス結果を記録します。
7. 更新とアンインストール:インストール時と同じ方法を使用
debとrpmを更新する場合は、当サイトのダウンロードページからシステムに適合する新しいパッケージを入手し、それぞれaptまたはdnfでインストールしてください。ローカルパッケージを手動でインストールしても、アプリの更新リポジトリに登録されるわけではありません。システムの日常的な更新でShadowrocketも必ず更新されるとは限りません。インストールパッケージの更新とHomeでのサブスクリプション更新は別の操作です。前者はアプリを更新し、後者は既存サービスの接続情報を更新します。
- debのアンインストール:
dpkg-deb --field "$pkg" Packageの出力から実際のパッケージ名を確認し、その名前を指定してsudo apt removeを実行します。製品の表示名からパッケージ名を推測しないでください。 - rpmのアンインストール:
rpm -qp --queryformat '%{NAME}\n' "$pkg"でパッケージ名を確認し、その名前を指定してsudo dnf removeを実行します。トランザクションの概要も確認してください。 - AppImageの更新:アプリを終了して設定を保存してから、古いファイルを新しいファイルに置き換えます。新しいファイルには再度
chmod u+xを実行する必要がある場合があります。 - AppImageの削除:アプリを終了してから、ファイルと自分で作成したデスクトップショートカットを削除します。ユーザー設定は別に残る場合があるため、設定ディレクトリ全体をむやみに消去しないでください。