Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Snapのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Snap
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:開発]] [[en:Snapd]] [[pl:Snap]] [[ru:Snapd]] {{Related articles start}} {{Related|Flatpak}} {{Related|AppArmor}} {{Related articles end}} [https://snapcraft.io/ Snap] はソフトウェアのデプロイとパッケージ管理のシステムです。パッケージは 'snap' と呼ばれ、それを使用するツールは 'snapd' と呼ばれています。snapd は、さまざまなディストリビューションで動作し、上流はディストリビューションに依存しないデプロイができるようになります。Snap は元々 Canonical によって設計、開発されました。 [https://github.com/snapcore/snapd snapd] は snap パッケージを管理するための REST API デーモンです。ユーザーは (同じパッケージに入っている) {{ic|snap}} クライアントを使用することで snapd を操作することができます。 snap はデフォルトのカーネルで現在有効にされている [[AppArmor]] を使ってアクセス制限ができます。[[AppArmor]] を有効にするには関連ページを参照してください。 {{Warning| * AppArmor がシステムで有効になっていない場合、すべてのスナップは ''devel'' モードで実行され、Arch Linux リポジトリからインストールされたアプリケーションと同じようにシステムへ無制限にアクセスできることになります。 * 信頼されていないコードを実行することは決して安全ではなく、サンドボックスはこれを変えることはできません。}} ==インストール== {{AUR|snapd}} または {{AUR|snapd-git}} パッケージを[[インストール]]してください。 {{tip|snapd は snapd パッケージでインストールしたバイナリのパスとデスクトップエントリをエクスポートするために {{ic|/etc/profile.d/}} にスクリプトをインストールします。変更を適用させるために一度再起動してください。}} バージョン 2.36 から、{{ic|snapd}} の AppArmor サポートが有効になっています。使用するためには AppArmor を有効にする必要があります。[[AppArmor#インストール]]を参照してください。 {{note|AppArmor が有効になっていない場合、全ての snap は {{ic|devel}} モードで動作します。このモードでは Arch Linux のリポジトリからインストールされたアプリのように、システムへの無制限のアクセスができます。}} [[AppArmor]] を使用する場合: $ systemctl enable --now apparmor.service $ systemctl enable --now snapd.apparmor.service ==設定== {{ic|snap}} が使おうとしたときに {{ic|snapd}} デーモンを起動するには、{{ic|snapd.socket}} を[[起動]]・[[有効化]]します。 == 使用方法 == {{ic|snap}} コマンドは snap を管理するために使います。 === 検索 === 次のコマンドで Ubuntu Store を検索できます: $ snap find ''searchterm'' === インストール === 次のコマンドで snap をインストールできます: # snap install ''snapname'' 上記のコマンドを実行するには root 権限が必要です。現在のところ、通常ユーザーで snap をインストールすることはできません。インストールすると {{ic|/var/lib/snapd/snaps}} に snap がダウンロードされて、{{ic|/var/lib/snapd/snap/<snapname>}} にマウントされ、システムから使える状態になります。 システムが起動したときに全ての snap が利用できるように、snap のマウントユニットも作成され、{{ic|/etc/systemd/system/multi-user.target.wants/}} にシンボリックリンクとして追加されます。インストールが完了したら、次のコマンドでインストールされている snap を確認できます。バージョン番号やリビジョン番号、開発者も表示されます: $ snap list ローカルのハードドライブから野良 snap をインストールするには: # snap install --dangerous ''/path/to/snap'' === アップデート === 次のコマンドで snap を手動でアップデートできます: # snap refresh snap を {{ic|refresh.timer}} の設定通りに自動でアップデートさせることもできます。 最新/次のアップデート時間を確認するには: # snap refresh --time アップデートの頻度を変更するには (例: 1日2回): # snap set core refresh.timer=0:00~24:00/2 詳細は [https://forum.snapcraft.io/t/system-options/87 システムオプションのドキュメント] を参照してください。 === 削除 === 次のコマンドで snap を削除できます: # snap remove ''snapname'' == ヒントとテクニック == === Classic snap === 一部の snap (例: [[Skype]] や Pycharm) は classic confinement を使用しますが、classic confinement は [[FHS]] に準拠していない {{ic|/snap}} ディレクトリを必要とします。snapd パッケージには {{ic|/snap}} ディレクトリは含まれていません。classic snap をインストールしたい場合、{{ic|/var/lib/snapd/snap}} から {{ic|/snap}} に手動でシンボリックリンクを作成してください: # ln -s /var/lib/snapd/snap /snap === アクセス制限 === [[AppArmor]] を使用している場合 snapd は Ubuntu と同じプロファイルを生成します。[[AppArmor]] パーサーはメインラインカーネルでまだサポートされていないルールを削除するほど賢くなっています。 基本的なアクセス制限が動いているか確認するために {{ic|hello-world}} snap をインストールして、次のコマンドを実行してください: $ hello-world.evil Hello Evil World! This example demonstrates the app confinement You should see a permission denied error next /snap/hello-world/27/bin/evil: 9: /snap/hello-world/27/bin/evil: cannot create /var/tmp/myevil.txt: Permission denied AppArmor によりアクセスが拒否され、ログが生成されるはずです: # dmesg ... [ +0.000003] audit: type=1327 audit(1540469583.966:257): proctitle=2F62696E2F7368002F736E61702F68656C6C6F2D776F726C642F32372F62696E2F6576696C [ +12.268939] audit: type=1400 audit(1540469596.236:258): apparmor="DENIED" operation="open" profile="snap.hello-world.evil" name="/var/tmp/myevil.txt" pid=10835 comm="evil" requested_mask="wc" denied_mask="wc" fsuid=1000 ouid=1000 [ +0.000006] audit: type=1300 audit(1540469596.236:258): arch=c000003e syscall=2 success=no exit=-13 a0=55d991ba6bc8 a1=241 a2=1b6 a3=55d991ba6be0 items=0 ppid=31349 pid=10835 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts2 ses=3 comm="evil" exe="/bin/dash" subj==snap.hello-world.evil (enforce) ... アクセス拒否が確認できない場合は、プロファイルがロードされているか確認してください: $ sudo aa-status | grep snap.hello-world snap.hello-world.env snap.hello-world.evil snap.hello-world.hello-world snap.hello-world.sh また、どのサンドボックスの機能が有効になっているか snapd に確認することができます: $ snap debug sandbox-features apparmor: kernel:caps kernel:domain kernel:file kernel:mount kernel:namespaces kernel:network_v8 kernel:policy kernel:ptrace kernel:query kernel:rlimit kernel:signal parser:unsafe policy:default support-level:partial confinement-options: devmode dbus: mediated-bus-access kmod: mediated-modprobe mount: freezer-cgroup-v1 layouts mount-namespace per-snap-persistency per-snap-profiles per-snap-updates per-snap-user-profiles stale-base-invalidation seccomp: bpf-argument-filtering kernel:allow kernel:errno kernel:kill_process kernel:kill_thread kernel:log kernel:trace kernel:trap === スナップフォルダを隠す === Snap は、ユーザーのホームディレクトリに {{ic|snap}} フォルダを配置します。このフォルダは再配置できませんが、[[KDE]] などで非表示にすることは可能です: $ echo snap >> ~/.hidden == トラブルシューティング == === 文字が読めない === 文字が読めず四角く表示される場合は、フォントキャッシュをクリアする必要があります。 # rm -f /var/cache/fontconfig/* $ rm -f ~/.cache/fontconfig/* # fc-cache -r -v Snapctl は、個々のスナップに対して内部キャッシュを保存しています。これは、[https://askubuntu.com/a/1228809 個別にクリアする必要があります。] まず、これらを実行することで見つけます。 {{hc|$ find ~/snap/ -wholename '*/.cache/fontconfig'| ... /home/darth_vader/snap/mailspring/common/.cache/fontconfig ... /home/darth_vader/snap/authy/common/.cache/fontconfig ... /home/darth_vader/snap/icedrive/common/.cache/fontconfig ... /home/darth_vader/snap/discord/common/.cache/fontconfig ... /home/darth_vader/snap/bitwarden/common/.cache/fontconfig }} その後、個別に削除するか、[https://gist.github.com/Techcable/a9382ad83f1b651a0e9c25e9c6f26f88 このシンプルなループ] を使用します。 最後に、セッションを再スタートします。 === Error:squashfs をマウントできない === Snap パッケージは [[ファイルシステム#Read-only ファイルシステム|SquashFS]] ファイルシステムを使用します。以下のようなエラーが発生した場合。 error: system does not fully support snapd: cannot mount squashfs image using "squashfs" SquashFS カーネルモジュールがロードされていることを確認することができます。 {{hc|$ lsmod| Module Size Used by '''squashfs xxxxx x''' ... }} {{tip|最近システムに snapd パッケージを [[#インストール|インストール]] した場合、[[snap#インストール|Snap パッケージのインストール]] の前に Arch Linux を再起動する必要があるかもしれません。 }} == GUI 管理 == Gnome Software Center と KDE Discover の両方がネイティブのスナップサポートを提供することができます。KDE Discover の場合は {{AUR|discover-snap}} パッケージをインストールしてください。 [https://snapcraft.io/snap-store Snap Store] は snap でインストールすることができます。 # snap install snap-store == サポート == Arch Linux のメーリングリストや他の公式サポートチャンネルは Arch Linux で使用する snap のサポートを求める適切な場所ではありません。サポートを求めるときは [https://forum.snapcraft.io Snapcraft フォーラム] を利用してください。 == 参照 == * [https://snapcraft.io/ 公式サイト] * [https://github.com/snapcore/snapd GitHub リポジトリ] * [http://arstechnica.com/information-technology/2016/06/goodbye-apt-and-yum-ubuntus-snap-apps-are-coming-to-distros-everywhere/ ArsTechnica article] (2016-06) Ubuntu の snap が Arch などのディストリで使えるようになったことについての記事
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
Snap
に戻る。
検索
検索
Snapのソースを表示
話題を追加