Shadowrocket Linux版をインストールする前に、ディストリビューションとプロセッサのアーキテクチャを確認し、当サイトのダウンロードページからdeb・rpm・AppImageを選びます。Linuxのデスクトップ環境とターミナルを利用できる方向けに、パッケージのインストール、実行権限、依存関係のエラー、更新・アンインストールの方法を説明します。コマンドには実際にダウンロードしたファイルのパスを指定し、パッケージのファイル名は決め打ちしません。
Linuxのインストールパッケージの選び方:ディストリビューションとアーキテクチャを確認
UbuntuやDebianなどAPTを使うシステムでは通常deb、FedoraなどDNFを使うシステムでは通常rpmを選びます。単一ファイルで実行したい場合はAppImageも選択肢です。拡張子は配布形式を示すもので、プロセッサのアーキテクチャを表すものではありません。また、異なるディストリビューションで動作する保証もありません。ダウンロード前に、配布ページに記載されたアーキテクチャと動作要件を確認してください。
ディストリビューションとパッケージマネージャー
- ディストリビューション情報
cat /etc/os-release- APTを使うシステム
- debを選び、依存関係の処理はaptに任せます。
- DNFを使うシステム
- rpmを選び、依存関係の処理はdnfに任せます。
- 単一ファイルで実行
- AppImageを検討します。動作環境の要件は別途満たす必要があります。
Linuxという共通点だけを理由に、debとrpmを混在させないでください。
アーキテクチャとデスクトップ環境
- プロセッサのアーキテクチャ
uname -m- x86_64
- 一般的な表記ではamd64/x86_64に相当します。
- aarch64
- 一般的な表記ではarm64/aarch64に相当します。
- 起動環境
- 現在のユーザーのグラフィカルデスクトップセッションで起動します。
アーキテクチャ名が対応していても、ダウンロードページでそのアーキテクチャ向けのパッケージが提供されているとは限りません。
まず、以下の読み取り専用コマンドを2つ実行して、基本的な環境を確認します。派生ディストリビューションの場合はID_LIKEも確認し、実際に使用しているパッケージマネージャーを特定してください。rpmを使うすべてのシステムでdnfコマンドが使えるわけではありません。別のパッケージ管理ツールを使用するディストリビューションでは、システムのドキュメントに従ってください。
cat /etc/os-release
uname -m
ダウンロード前の準備:配布元とファイルの絶対パスを確認
インストールパッケージはクライアントのダウンロードページにあるLinuxの項目から入手できます。ShadowrocketのLinux版は無料です。iPhone/iPad版はApp Storeで2.99米ドルの買い切り、Mac(Appleシリコン/Intel)、Windows、Android版も無料です。iPhone/iPadのシステム要件はApp Storeのページで確認してください。
-
システムを確認する
ターミナルで
cat /etc/os-releaseとuname -mを実行し、ディストリビューション、パッケージマネージャー、アーキテクチャを確認します。パソコンのメーカーから推測しないでください。 -
ダウンロードページを開く
当サイトの「クライアントのダウンロード」からLinuxを選び、環境に合ったdeb・rpm・AppImageをダウンロードします。ブラウザーにダウンロード完了が表示されるまで待ちます。
-
ファイルのパスを確認する
ファイルマネージャーでダウンロードしたファイルのプロパティを開き、ファイル名を含む絶対パスを確認します。ダウンロード先のフォルダー名はローカライズやユーザー設定で変わることがあるため、Downloadsとは限りません。
-
インストール方法を選ぶ
debとrpmは後述の手順でシステムのパッケージマネージャーを使ってインストールします。AppImageは単一ファイルとして実行できるよう、実行権限を付与します。トラブルシューティング中に3種類の形式を次々とインストールするのは避けてください。
以下の対話式コマンドはBash用です。入力を求められたら、実際のファイルの絶対パスを貼り付けてEnterを押してください。パスに空白が含まれていても構いませんが、この入力時に引用符を追加したり、ホームディレクトリの代わりに~を入力したりしないでください。readはチルダを自動展開しません。後続のコマンドでは変数を二重引用符で囲んでいます。
debのインストール方法:aptでローカルファイルをインストール
Debian、Ubuntuおよび互換性のあるAPTシステムでは、apt installを使ってローカルのdebファイルをインストールします。設定済みのソフトウェアリポジトリを利用して、パッケージマネージャーが依存関係を解決できます。ここで指定するのは絶対パスであり、リポジトリ内のパッケージ名ではありません。インストール前に、パッケージ内のPackageとArchitectureのフィールドを確認できます。
read -r -p "debファイルの絶対パスを入力してください: " pkg
test -f "$pkg" && dpkg-deb -f "$pkg" Package Architecture
sudo apt update
sudo apt install "$pkg"
2行目にパッケージ情報が表示され、パスのエラーがないことを確認してから、インストールコマンドを実行します。sudoはこのマシンの管理者権限を求めます。ターミナルでパスワードを入力しても、通常は文字が表示されません。これはアプリのアカウントへのログインではありません。apt updateはソフトウェアリポジトリのインデックスを更新するだけで、Shadowrocketのインストールや更新を意味しません。
- ファイルが見つからないと表示される場合:入力したパス、ファイル名の大文字・小文字、ダウンロードの完了を確認してください。すぐに管理者権限で何度も実行するのは避けてください。
- 依存関係を満たせないと表示される場合:不足しているパッケージ名とシステム要件を確認し、システムのソフトウェアリポジトリが利用できるか調べてください。不明な場所からランタイムライブラリを寄せ集めないでください。
- パッケージマネージャーがロックされていると表示される場合:システム更新や別のインストール処理が終わるまで待ってから、再度実行してください。ロックファイルの削除を通常の対処法にしないでください。
- インストール完了後:デスクトップのアプリケーションメニューでShadowrocketを探します。インストーラーにエラーが表示された場合は、まずそのエラーを解決してください。メニューにアイコンが表示されたことだけでインストール成功と判断しないでください。
rpmのインストール方法:dnfでローカルパッケージと依存関係を処理
FedoraおよびDNFを採用する互換システムでは、dnf installを使ってローカルのrpmをインストールします。まずパッケージ内の名前とアーキテクチャを確認し、インストール内容を確認してください。DNFが実行時の依存パッケージもインストールする場合があります。内容は、現在のシステムのソフトウェアリポジトリとインストール済みのコンポーネントによって異なります。
read -r -p "rpmファイルの絶対パスを入力してください: " pkg
test -f "$pkg" && rpm -qp --queryformat '%{NAME} %{ARCH}\n' "$pkg"
sudo dnf install "$pkg"
インストール内容の確認画面が想定どおりであることを確認してください。多数のデスクトップコンポーネントを削除する予定がある、アーキテクチャが一致しない、依存関係の競合がある場合は、いったん中止してダウンロード形式を確認します。インストールを続けるために、依存関係の無視や強制置換のオプションを追加しないでください。
2つのインストール方法で管理される範囲
deb/rpmでインストール
- インストール記録はシステムのパッケージマネージャーが管理します。
- システム全体へのインストールには管理者権限が必要です。
- アンインストールにはダウンロードしたファイル名ではなく、パッケージ内の正式な名前を使います。
- 依存関係の解決には、設定済みのソフトウェアリポジトリを使用します。
AppImageで実行
- ダウンロードしたファイルから起動します。
- まず現在のユーザーに実行権限を付与します。
- ダウンロード時の自動削除を避けるため、ファイルを安定した場所に保存してください。
- デスクトップメニューに自動で登録されるとは限りません。
システムのパッケージ管理記録を残したい場合は、環境に合ったdebまたはrpmを選びます。AppImageを選ぶ場合は、ファイルの保存場所と差し替えを自分で管理してください。
AppImageの実行方法:実行権限を付与してターミナルから起動
AppImageは、ダウンロード後に実行権限を付与してから、現在のデスクトップユーザーで起動するのが一般的です。初回はターミナルから実行すると、権限、マウント、ランタイムライブラリに関するエラーを確認しやすくなります。ダブルクリックしても反応しないからといって、sudoでグラフィカルアプリ全体を起動しないでください。
read -r -p "AppImageファイルの絶対パスを入力してください: " app
test -f "$app" && chmod u+x "$app"
"$app"
chmod u+xはファイルの所有者に実行権限を追加します。ファイル形式を変換したり、不足しているシステムコンポーネントをインストールしたりするコマンドではありません。ファイルの場所を変えなければ、同じパスから繰り返し起動できます。別のフォルダーに移動した場合は、移動後のパスを使ってください。プログラムの実行中にファイルを削除または置き換えないでください。
権限を付与してもPermission deniedと表示される場合
まずls -l "$app"で権限を確認し、ファイルがあるパーティションにnoexecマウントオプションが設定されていないか調べてください。この制限がある場合は、実行が許可されたユーザーディレクトリにファイルを移して再試行できます。外付けドライブや共有ディレクトリ全体のマウント設定を安易に変更しないでください。
FUSE関連のエラーが表示される場合
AppImageの実行にFUSEが必要な場合があります。ターミナルに表示された不足ライブラリ名を確認し、利用中のディストリビューションのパッケージ情報に従って、対応する互換ライブラリをインストールしてください。パッケージ名はディストリビューションやシステムのバージョンによって異なることがあるため、特定のディストリビューション向けコマンドを一律にコピーしないでください。
Exec format errorが表示される場合
まずuname -mを実行し、ダウンロードページのアーキテクチャ表記と照合してから、file "$app"でファイル形式を確認します。アーキテクチャが一致しない場合や、ダウンロードしたファイルが実行可能プログラムではない場合は、適切なファイルを選び直してください。chmodを繰り返してもアーキテクチャの問題は解決しません。
ダブルクリックしてもウィンドウが表示されない場合
グラフィカルデスクトップ上でターミナルを開き、"$app"を直接実行して、最初に表示される明確なエラーを確認してください。リモートのSSHセッションから起動している場合は、まずローカルマシンのデスクトップで試します。グラフィカルセッションがないことをファイルの破損と誤認しないでください。
インストール後の確認:起動を確認してから接続設定をチェック
ウィンドウが開くことと、ネットワークに接続できることは別の確認項目です。まず通常のユーザー環境でアプリを起動できることを確認し、その後、利用者がすでに契約しているサービスの接続情報を使ってください。クライアントをインストールしても、利用可能なサーバーが自動的に設定されるわけではありません。当サイトでは接続先やサブスクリプションの提供・販売・推奨はしていません。
- 起動を確認:deb/rpmでインストールした場合はアプリケーションメニューから、AppImageの場合は実際のファイルパスから起動します。クラッシュする場合は、ターミナルのエラーとディストリビューション、アーキテクチャの情報を控えてください。
- 接続情報を確認:自分の設定を読み込む場合は、サーバーアドレス、ポート、プロトコル、認証情報がそろっているか確認します。ポート番号はサービス提供元が指定した値を使ってください。インストール手順を理由に、特定の番号へ一律に変更しないでください。
- 設定項目の役割を確認:現在の画面にHome、Config、Settingsなどの項目がある場合は、実際に表示されている内容を確認してください。Global RoutingのDirectは直接接続を意味します。この状態でのアクセス結果を、プロキシ接続のテスト結果として扱わないでください。
- ルールの適用範囲を確認:Configの設定を使う場合、結果は設定内のルールにも左右されます。サブスクリプションの更新とアプリの更新は別の操作です。前者はユーザーの接続情報を更新し、後者はクライアントプログラムを置き換えます。
権限の確認が表示された場合は、その表示が現在の起動操作に関するものかを確認し、要求されている具体的な権限を読んでください。インストールコマンドに管理者権限を使うからといって、その後もアプリを常に管理者として実行する必要はありません。権限の表示はデスクトップ環境、ネットワークの制御方式、ディストリビューションによって異なるため、iPhone/iPadのVPN設定に関する表示を基準にLinuxのインストール成否を判断しないでください。
更新とアンインストール:正式なパッケージ名を使い、設定を保持する
debとrpmを更新するには、対応する形式の新しいパッケージをダウンロードし、同じパッケージマネージャーでインストールします。ファイル名の変化だけで更新結果を判断したり、ローカルパッケージのインストールで更新用リポジトリが自動追加されると想定したりしないでください。AppImageを更新する場合は、先にプログラムを終了し、新しいファイルで古い起動ファイルを置き換えてから、実行権限を確認します。
- debのアンインストール:元のインストールファイルからPackageフィールドを確認し、APTには正式なパッケージ名を指定します。削除前に処理内容を確認してください。インストールファイルの完全なファイル名をパッケージ名として使わないでください。
- rpmのアンインストール:元のファイルからNAMEフィールドを確認し、DNFで該当するパッケージを削除します。依存関係への影響も確認してください。
- AppImageの削除:アプリを終了してからファイルを削除します。デスクトップのショートカットを手動で作成している場合は、その項目も削除してください。
- 設定の保持:アプリをアンインストールしても、ユーザーディレクトリ内の設定が削除されるとは限りません。設定を移行する場合は、まずアプリで実際に利用できるエクスポート機能を使って自分の設定を保存してください。設定ディレクトリを推測したり、用途が分からないディレクトリを再帰的に削除したりしないでください。
以下のコマンドは、ローカルのインストールファイルから正式なパッケージ名を取得してアンインストールする方法です。現在のインストール形式に合う一方だけを実行してください。実際に存在するファイルの絶対パスを入力する必要があります。インストールファイルをすでに削除している場合は、システムのパッケージマネージャーでインストール済み一覧を確認し、名前を推測しないでください。
# APTシステム:debのメタデータからパッケージ名を取得
read -r -p "元のdebファイルの絶対パスを入力してください: " pkg
name=$(dpkg-deb -f "$pkg" Package) && sudo apt remove "$name"
# DNFシステム:rpmのメタデータからパッケージ名を取得
read -r -p "元のrpmファイルの絶対パスを入力してください: " pkg
name=$(rpm -qp --queryformat '%{NAME}' "$pkg") && sudo dnf remove "$name"