お伝えしたいこと
Snapによって、FedoraにSlackをインストールする手順を紹介します。
FedoraでSlackをインストールする場合、現状Snapを使うのが最も無難な方法だと思います。
その理由については、#(参考) Snapを使う理由に記載しましたので、興味のある方はご確認ください。
- お伝えしたいこと
- Snapdのインストール
- Slackのインストール
- その他の基本コマンド
- (参考) Snapを使う理由
- (参考) classic confinementのパッケージインストール
- まとめ
- Linux PC関連まとめ
Snapとは
SnapはLinuxにソフトウェアをインストールするパッケージの1種です。
以下の特徴を持ちます。1
- 複数のディストリビューションにて動作する (Ubuntu, Fedora, Arch Linux, ...)2
- Snapファイル内に依存ライブラリを全て含むため、依存パッケージのインストールが不要
Snapdのインストール
snap
コマンドはsnapd
デーモンと共に動作します。
Fedora上でsnap
コマンドを使用するために、snapd
をインストールします。
sudo dnf install snapd
snap version
でsnap
やsnapd
のバージョンが表示されれば、正しくインストールできています。
snap version # snap 2.55.3-2.fc35 # snapd 2.55.3-2.fc35 # series 16 # fedora 35 # kernel 5.16.12-200.fc35.x86_64
インストール後、一旦ログインし直します。
再ログイン後、PATHの末尾に/var/lib/snapd/snap/bin
が追加されます。
これにより、Snapでインストールした実行ファイルにPATHが通るようになります。
echo $PATH /home/stopendy/.local/bin:/home/stopendy/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin
なお、PATHの追加は、/etc/profile.d/snapd.sh
にて行われていました。
Slackのインストール
Snapでパッケージをインストールする際は、以下の流れで進めます。
- パッケージを探す
- Confinementを確認する
- インストールする
パッケージを探す
snap find
コマンドでパッケージを部分一致検索できます。
snap find slack # Name Version Publisher Notes Summary # slack 4.25.1 slack✓ - Team communication for the 21st century. # (以下略)
Publisher
がslack✓
と記載されている通り、チェックマークがついています。
これはパッケージメンテナがSnapの運営元によって公式であると確認済みであることを示しています (※)。
(※) snap find --help
より
パッケージは、snapcraftのWEBサイト上でも検索できます。
https://snapcraft.io/slack
Confinementを確認する
オンラインリポジトリ上のSnapのConfinementを確認するには、snap info --verbose
コマンドを使います。
snap info --verbose slack # confinement: strict # (一部のみ抜粋)
Confinementは、Snap上で動作するアプリケーションがシステムに対してどの程度アクセス権限を持つかを表します。
Confinementの値によってはインストール手順が若干変わってくるので、ここで確認しておく必要があります。
ConfinementはSnapパッケージがビルドされた時点で決まっています。
したがって、私達ユーザーが選ぶことはできません。
Confinementは3つの値を取りえます。
私達が使うパッケージは、通常strictかclassicのいずれかです。3, 4
- strict
- 最も一般的なconfinement
- アプリケーションからシステムへのアクセスを適切に制限する
- アクセス先によっては、ユーザー操作を求める (カメラなど)5
- 許可されないアクセスは拒否する
- classic
- アプリケーションからシステムへのアクセスを無条件で許可する
- classicのパッケージをインストールする前に#初期設定が必要
sudo snap install --classic
でインストールする
- devmode
- 開発者向けのモード
- 許可されないアクセスはログ出力するが、実際には許可される
- アプリが必要とする権限の洗い出しに使えそう
sudo snap install --devmode
でインストールする
インストールする (strict confinementの場合)
以下のコマンドでSlackをインストールします。
Slackパッケージのconfinementはstrict
なので、特にオプション指定は不要です。
sudo snap install slack
その他の基本コマンド
インストール済みのSnapパッケージを一覧表示します。
snap list # Name Version Rev Tracking Publisher Notes # slack 4.25.1 61 latest/stable slack✓ - # (一部抜粋)
パッケージを更新するコマンドです。
sudo snap refresh
Snapパッケージを削除するコマンドも記載します。
デフォルトでは、snap restore
によって復元するためのデータを保管します。
この場合はsnap remove
後もsnap list
でパッケージが表示されます。
--purge
オプションを指定することで、復元用のデータを残さずに削除します。
# sudo snap remove --purge slack
(参考) Snapを使う理由
2022年3月1日以降、SlackはFedora公式リポジトリで配布されなくなりました。
slack.com - System requirements for using Slack
SlackをFedora Linux上で動作させる公式の手段は主に2つです。
- RPMファイルを公式サイトからダウンロードしてインストールする
- Snap版のSlackをインストールする
1のRPMは、Slackのリポジトリ情報を含みません。
したがって、今後Slackをバージョンアップしたいときには都度RPMファイルをダウンロードしてインストールする必要が出てきます。
これではあまりに不便です。
そこで、2のSnap版が出てきます。
Snap版であればオンラインリポジトリにSlackが配布されているので、sudo snap refresh slack
コマンド1つでSlackをバージョンアップできます。
Fedora上でSlackを使いたい場合には、Snapを使うのが正攻法だと思います。
管理が面倒になるので、DNF以外のパッケージマネージャーを使うことには多少なりとも抵抗を覚えるかもしれません。
しかし、FedoraからSlack公式のリポジトリを使うにはSnapしか現状なさそうなので、私は割り切りました。
(参考) classic confinementのパッケージインストール
classicの場合の手順についても触れておきます。
今回はVS Codeをモデルにします。
VS CodeはFedoraのリポジトリで提供されるので、わざわざSnapでインストールする必要はありません。
ここでVS Codeをインストールしているのは、あくまで例示のためです。
Confinementの確認
VS Codeのconfinementは、2022年5月現在classicです。
snap info code --verbose # publisher: Visual Studio Code (vscode✓) # confinement: classic # (一部抜粋)
初期設定
Classic confinementのパッケージをインストールするには、/snap
にシンボリックリンクを作成しておく必要があります。6
sudo ln -s /var/lib/snapd/snap /snap
シンボリックリンクを作成せずにインストールしようとすると、以下のようなエラーが出ます。
sudo snap install --classic code # error: cannot install "code": classic confinement requires snaps under /snap or symlink from /snap # to /var/lib/snapd/snap
インストール
インストールの際は--classic
オプションを付与します。
sudo snap install code --classic
--classic
オプションを付与しないと、以下のエラーが出ます。
sudo snap install code # error: This revision of snap "code" 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.
まとめ
Snapによって、FedoraにSlackを導入する手順を紹介しました。