Blenderのアイコンを変更しようと長い間試みてきましたが、何をしても、/snap/blender-tpaw/3/
で編集することは許可されていません。
ここに私が試したものがあります:
nautilus
なしでSudo
からファイルを編集します。nautilus
のファイルをSudo
で編集します(端末のSudo nautilus
)。cp
なしのrm
やSudo
などの端末コマンドの使用。Sudo
(Sudo cp <source> /snap/blender-tpaw/3/
やSudo rm /snap/blender-tpaw/3/<filename.ext>
など)を使用した端末コマンドの使用Sudo -i
を使用)どの場合でも、次のエラーが表示されます。
cannot remove/copy '/snap/blender-tpaw/3/filename.ext': Read-only file system
filenameはファイル、.extはその拡張子です。
これは、Blenderだけでなく、他のスナップのファイルにも適用されます。
ここで何か間違ったことをしていますか?それとも、それらのファイルを変更することは不可能ですか? UbuntuからBlenderまでのすべてがオープンソースであるため、私は不可能だとは思いませんが、これらのファイルを変更することをブロックする理由はありません。
編集:
メインメニュー(alacarte)を使用してアイコンを変更しましたが、スナップファイルを変更できない理由を知りたいです。
スナップを再構築せずにスナップの内容を変更することは不可能です。これは主に、スナップが改ざんされていないことを確認するためのセキュリティ対策です。
ただし、参照されているアイコンは、おそらくblender-tpaw_blender.desktop
というデスクトップファイルにあり、これはis編集可能で、/var/lib/snapd/desktop/applications
にあります。
次の行を変更してアイコンを更新できます。
Icon=/snap/blender-tpaw/3/meta/gui/icon.svg
質問の前提は技術的には正しいですが(スナップのファイルを変更することはできません)、これを回避する方法があります。
そのような方法の1つは、--bind
オプションをmount
と組み合わせて使用し、既存のファイル階層を別の場所に再マウントすることです。
たとえば、スナップショットでcore
にインストールされている証明書ではなくシステム証明書を使用する場合は、システム証明書を含むディレクトリをホストのの上にマウントできます次のコマンドを使用して、core
のシステム証明書ディレクトリ:
Sudo mount --bind -o nodev,ro /etc/ssl/certs /snap/core/current/etc/ssl/certs/
これは実際にはスナップファイルシステムを変更しません。フォルダーをアンマウントすると、古いフォルダーが代わりに使用されます。
Sudo umount /snap/core/current/etc/ssl/certs
注:マウントは、リブート間で持続しません。再起動後もマウントを保持する方法はいくつかあります。そのような方法の1つは、systemd
起動スクリプトを作成することです。
$ cat <<-EOF | Sudo tee /etc/systemd/system/snap-core-current-etc-ssl-certs.mount
[Unit]
Description=Mount unit to fix etc ssl certs in core package
After=snapd.service
[Mount]
What=/etc/ssl/certs
Where=/snap/core/current/etc/ssl/certs
Type=none
Options=bind,nodev,ro
[Install]
WantedBy=multi-user.target
EOF
$ systemctl enable snap-core-current-etc-ssl-certs.mount
here から取得。