AppArmorが私のシステムに問題を引き起こしています。 AppArmorが実行を妨げるので、無効にしました。新しいaptアプリケーションをインストールできません。とにかく試してみると…
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
コマンドを実行すると、次の結果が表示されます。
Reloading AppArmor profiles
再起動するまでそのまま残ります。 AppArmorを削除しようとすると、同様のメッセージが表示されます。これにより、新しいアプリケーションを追加したり既存のアプリケーションをアップグレードしたりできなくなります。
LSB-RELEASEから:
DISTRIB_ID=neon
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="KDE neon 5.27"
この問題を解決するにはどうすればよいですか?
ベストアンサー1
実際にAppArmorを無効にするのは少し面倒ですが、手順を実行する順序を知っていれば特に難しくありません。キーは実際にはユーザー空間にはまったく存在しませんが、カーネルコマンドラインパラメータ、特にlsm=
アクティブ化と優先順位を制御する値から発生します。Linuxセキュリティモジュール。
まずcat /sys/kernel/security/lsm
、端末でコマンドを実行して、カーネルがロードしているモジュールの参照点を取得します。これにより、次の内容が報告されることがありますlockdown,capability,landlock,yama,apparmor
。これで、パラメータからAppArmor LSMを削除して、再起動用にシステムを準備します。 AppArmorが欠落しているからです1sm=
。
aa-status
どのAAプロファイルが有効になっているかを確認するには、tpの出力を見てください。問題
sudo aa-teardown
、これはアクティブとして報告されたすべてのプロファイルを削除します。aa-status
逆アセンブリプロセスが終了したら、もう一度呼び出して成功を確認します。システム起動時にAppArmorデーモンをロードしないようにサービス管理者に指示してください。モジュールがロードされないようにカーネルコマンドラインを変更すると、必然的に失敗します。最近はほとんどSystemDを使用しているようですが...
sudo systemctl stop apparmor.service sudo systemctl disable apparmor.service
sudo systemctl mask apparmor.service
実行を防ぐだけでなく、すべてのコマンドを防止する2番目のコマンド(個人的な好み)を自由に使用することもできます。その他サービスは、自分がシステムに存在するかどうかはわかりません。または、rc.dを引き続き使用している場合は、このシーケンスも操作を実行します。sudo invoke-rc.d apparmor stop sudo update-rc.d -f apparmor remove
実行中のシステムですぐにブートローダー構成を変更するか、ブート中にブートプロセスを中止し、ブートローダーインターフェースを介して現在のデフォルトカーネルコマンドラインを編集するかを決定します。とにかく、ここで魔法が起こります。まず、次のよう
apparmor=0
に追加します。最初の引数カーネルコマンドラインから指定された場所に移動し、lsm=
このプロセスの開始時に見たコンマ区切りリストから削除します。apparmor
現在のカーネルパラメータがlsm=
どこにも指定されていない場合(したがってコンパイルされたカーネルのデフォルト値に依存する場合)、必要な場所に自由に挿入してください。場所は影響しません。明確に言えば、前のコマンドの出力がシステムに似ている
cat
場合lockdown,capability,landlock,yama,apparmor
lsm=lockdown,capability,landlock,yama
apparmor=0
これで、システムが起動すると空lsmod | grep apparmor
の出力がps aux | grep -v grep | grep apparmor
表示され、完全に無効になっていることを確認できます。これにより、パッケージ管理タスクを正常に完了して再開できるようになります。