Posted: 2026-05-20
| Categories:
ubuntu
| Tags:
css ,
firefox ,
ubuntu ,
youtube
FirefoxのuserContent.cssでYouTubeを軽くする 4GB RAM 級の古い PC や小型 tablet で YouTube を開くと、動画そのものより周辺 UI の重さが気になることがある。
広告、コメント、関連動画、Shorts、棚 UI、アニメーションなどを CSS で非表示にすると、JavaScript の実行自体は止められないが、描画負荷と見た目の密度は下げられる。
このメモでは、Stylus のような拡張機能ではなく Firefox 標準の userContent.css を使ってみた時のメモ。
方針 JavaScript は使わない 外部 URL、@import、url(...) は使わない CSS は YouTube domain に限定する Firefox の policy で userContent.css を有効化する profile が snap 版と deb 版で分かれることを前提にする CSS の外形は次のようになる。
@ -moz-document domain ( "youtube.com" ) {
ytd-rich-section-renderer ,
ytd-reel-shelf-renderer ,
ytd-rich-shelf-renderer [ is-shorts ],
ytd-comments ,
# comments {
display : none !important ;
}
}
実際には YouTube の DOM 変更に備え、Shorts 系、棚 UI、コメント、関連 UI を複数 selector で押さえる。
userContent.cssを使う理由 Stylus のような extension を使うと管理は楽だが、低メモリ端末では extension 自体も増やしたくないことがある。
Read more... Posted: 2026-05-20
| Categories:
ubuntu
| Tags:
android ,
ansible ,
rust ,
slint ,
ubuntu
UbuntuでAndroid + Rust/Slint開発環境をAnsible管理する Ubuntu workstation に Android Studio、Android SDK、Emulator、Rust Android build 環境を入れる場合、GUI installer 任せにすると再構築時の差分が見えにくい。
Ansible では、OS 側の依存、SDK directory、Rust toolchain、Emulator 用 group、確認用 AVD を分けて管理すると扱いやすい。
管理するもの Android Studio Android SDK command-line tools platform-tools emulator Android platform / build-tools NDK x86_64 emulator image Rust toolchain x86_64-linux-android targetcargo-apkKVM / libvirt / plugdev group Android Studio 本体は公式 tarball を固定 path に展開し、SDK は /opt/android-sdk のような system-wide path に置くと、複数 shell や editor から参照しやすい。
directory方針 例:
Read more... Posted: 2021-08-03
| Categories:
Ubuntu
| Tags:
Keyboad ,
Ubuntu
環境 Ubuntu Studio 22.04
UbuntuでUSBインストーラを作る isoイメージをホームディレクトリ直下に移動しておくとイメージを自動的にリストアップしてくれる。
usb-creator-gtk, usb-creator-kde が存在するので未インストールであればインストールして起動。
Ubuntu Studio 22.04 インストーラ固有 Nvidia RTX3060だとインストーラがGPU経由で表示できない M/BのUEFIの画面で[Initiate Graphic Adapter]の箇所でPEG(オンボードでないGPU)をIDG(内蔵のグラフィック機能)に変更M/BのD-SubなりHDMIに接続しセットアップOSセットアップ後、NvidiaのドライバーをインストールしPEGに戻した。 レポジトリのキーファイル操作 apt-key は非推奨。新規にリポジトリ鍵を追加する場合は、/usr/share/keyrings/ に鍵を置き、リポジトリ設定の signed-by= で参照する。
既存環境の棚卸しや削除時だけ apt-key list / apt-key del を使う。
キー一覧
キー削除
ファイルを直接削除
下記ディレクトリ配下のファイルを削除
/usr/share/keyrings/ /etc/apt/trusted.gpg.d/ ssh鍵の作成とgithubへの登録 右上の自分のアイコンをクリック -> Settings -> SSH and GPG keys -> New SSH Key
ssh-keygen
cat ~/.ssh/id_rsa.pub
表示された公開鍵をGithubに貼り付けて設定
ghqをインストールしてgetする apt install golang-go
go install github.com/x-motemen/ghq@latest
コマンドサーチパスに ~/go/bin を追加
Read more... Posted: 2021-07-25
| Categories:
ubuntu
| Tags:
containerd
効果 コマンド ログ ctr logs <コンテナID> コンテナの情報を取得 ctr containers info <コンテナID> 名前空間の指定 ctr -n <名前空間> containers info <コンテナID> コンテナのリスト ctr containers list , sudo ctr c ls(短縮形) イメージのpull ctr -n mynamespace images pull docker.io/library/alpine:latest イメージのrun ctr -n mynamespace run docker.io/library/alpine:latest mycontainer コンテナの停止 ctr containers stop afa4952050fb2aba1b0f3e1526a231ae442bae0995fda0e95b341073fe79cc79 ソケットファイルを指定 ctr –address $XDG_RUNTIME_DIR/containerd/containerd.sock containers list
os側でps -efなどで確認できるPIDからコンテナを探す
``
psコマンドの結果からコンテナを探す psで見ると下記のようなプロセスがある
/usr/local/bin/containerd-shim-runc-v2 -namespace default -id afa4952050fb2aba1b0f3e1526a231ae442bae0995fda0e95b341073fe79cc79 -address /run/containerd/containerd.sock
この-id はコンテナID
-address /run/containerd/containerd.sock : このオプションは、containerd のデーモンと通信するためのUNIXソケットのパスを指定している。
containerd クライアントとデーモン間の通信に使用されます。
Read more... Posted: 2021-07-25
| Categories:
ubuntu
| Tags:
buildkit ,
nerdctl
背景 私はNFS homeを利用している。NFS上にコンテナを置けないトラブルへのTIPSについて残しておく。
またログが~/.local/share/nerdctl配下に書き出されるが、NFS上にログが書き出されると非常に重くなってしまうので別の場所をしていするようにした
chown ができない、というエラーが出る error: failed to solve: failed to compute cache key: mount callback failed on /var/lib/containerd/tmpmounts/containerd-mount2455064670: failed to Lchown "/var/lib/containerd/tmpmounts/containerd-mount2455064670/etc/gshadow" for UID 0, GID 42: lchown /var/lib/containerd/tmpmounts/containerd-mount2455064670/etc/gshadow: operation not permitted: unknown
NFSの場合、rootlessが動作しない、ようだ rootless containerdはデフォルトでホームディレクトリ配下を使用するが、私がNFS Homeだったので動作しなかった。
Redhatのエントリが参考になる。
Rootless Podman and NFS
Why doesn’t Podman support storage on NFS?
The use case that does not work well is having the container image store reside on an NFS mount point.
ンテナイメージをNFS上に置くのは良くないらしい。
The NFS protocol has no concept of user namespaces and has no way to know that the process running as UID 1000 is in one.
The NFS server also has no way of knowing that the client process has DAC_OVERRIDE for the user namespace and that UID 100059 is mapped into the same user namespace.
In other words, the chance of this information being known by NFS is slim at best.
NFSサーバ側はクライアント側で DAC_OVERRIDE しようとしているかなど分からない(NFSはサポートしていない機能なので仕方がない)
解決策としては2つのアプローチが紹介されている。
Read more... Posted: 2021-07-25
| Categories:
ubuntu
| Tags:
apparmor ,
buildkit ,
nerdctl
背景 containerdをrootlessで動かそうとしたところAppArmorに引っかかってしまった
(私の場合、/mnt配下の追加ディスク上にコンテナイメージを置きたい、という背景があったため引っかかったと思われる)
標準的なディレクトリ以外で動作させようとした場合に問題になりそう。
下記のエラーが出た Mar 6 00:39:00 marie-ms7817 systemd[1055]: Started libcontainer container d1b514a134af96a15f5062afe042fd8654d91b2be4bef27f9af5865e29d2cad7.
Mar 6 00:40:30 marie-ms7817 kernel: [ 7375.140738] audit: type=1400 audit(1709653230.078:103): apparmor="DENIED" operation="change_onexec" class="file" info="label not found" error=-2 profile="unconfined" name="nerdctl-default" pid=54813 comm="aa-exec"
apparmor=“DENIED
operation=“change_onexec” このメッセージは、AppArmor(Linuxのセキュリティモジュールの一つ)が、実行時の権限変更を拒否したことを示している。
特に、name=“nerdctl-default"に関連する操作が拒否されており、これはコンテナのセキュリティポリシーに関連する問題を示唆している。
label not foundという部分から、特定のセキュリティラベルが見つからない、または適切に設定されていない可能性がある。
既存の設定前の確認 nerdctl-defaultに関連する設定があるか確認。
下記コマンドで現在のAppArmorの設定のリストを出力し設定があるか確認(無かった)
ポリシーファイルの作成 /etc/apparmor.d ディレクトリに nerdctl-default という名前の新しい AppArmor ポリシーファイルを作成する。
/etc/apparmor.d/nerdctl-default とした。
#include <tunables/global>
profile nerdctl-default flags=(attach_disconnected,mediate_deleted) {
/ r,
/dev/tty rw,
/dev/pts/** w,
/dev/null rw,
/etc/.ro*/ld.so.cache r,
/etc/ld.so.cache r,
/etc/locale.alias r,
/etc/nsswitch.conf r,
/etc/passwd r,
/mnt/append-disk/containerd/** rwk,
/proc/ r,
/proc/** r,
/sys/devices/system/** r,
/sys/kernel/mm/transparent_hugepage/hpage_pmd_size r,
/usr/bin/** rix,
/usr/lib/locale/locale-archive r,
/usr/lib/x86_64-linux-gnu/** rm,
/usr/lib/locale/** r,
/usr/share/terminfo/** r,
/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/** rwk,
/var/lib/containerd/** rwk,
owner /** rwix,
network,
ptrace (read, readby) peer=nerdctl-default,
signal (receive) peer=nerdctl-default,
signal (receive) peer=unconfined,
signal (send) peer=nerdctl-default,
signal (send) set=kill peer=unconfined,
}
それぞれの意味。
Read more...