web-dev-qa-db-ja.com

/ Library / StagedExtensionsの目的と拡張機能の削除方法

MacOS High SierraからParallelsを完全にアンインストールしようとしています。/Library/StagedExtensions/Parallel Desktop.appに保存されているいくつかのParallels拡張機能を除くすべてをディスクから削除しました

場所はユーザーが承認した拡張機能に関係していると思いますが、それらも削除/アンインストールする方法を見つけたいです。拡張機能を削除しようとすると、ルート権限にもかかわらず操作が許可されないというメッセージが表示されます。

何か案が?

8
Pinco Pallino

私の場合、削除されたkextは、kextキャッシュを無効にするとStagedExtensionsから消えます。

Sudo rm -rf /Library/Extensions/Parallel\ Desktop.app # check if the name is correct so you don't delete some other kext
Sudo kextcache -invalidate /
# now you should not see your deleted kext here
ls /Library/StagedExtensions/

2019年更新:

詳細については、manページman kextcacheを参照してください。 -invalidate-iに関連する抜粋:

 -i os_volume, -invalidate os_volume
              Rebuild out-of-date caches and update any helper partitions
              associated with os_volume.

              This option mimics Sudo touch /System/Library/Extensions on
              os_volume.  If kextcache cannot find or make sense of
              os_volume/usr/standalone/bootcaches.plist, the volume is treated
              as if no caches need updating: success is returned.

新しいオプションもあります:

     -clear-staging
          Clears the kernel extension staging area by removing all staged content.

     -Prune-staging
          Prunes the kernel extension staging area by removing all kernel extensions
          no longer present in their original location.

-Prune-stagingは削除された拡張機能のみを削除し、次のkextキャッシュの再構築から少し時間を節約します。

これらの新しいオプションを含むMojaveのマニュアルページについては、 https://www.unix.com/man-page/mojave/8/KEXTCACHE/ を参照してください。

10
Dalibor Filus

次のようにStageExtensionsフォルダーをクリアする新しい方法があります

Sudo kextcache --clear-staging

このコマンドは、/ Library/StageExtensionsフォルダーをクリアします。ソフトウェアのインストール中に許可エラーが発生した場合に備えて、リカバリモードに移動してこのフォルダを手動で削除する必要はありません。

ScreenFlowのTelestreamAudio.kextをアンインストールしようとすると、同様の問題が発生しました。何が起こっているのかと言うと、StagedExtensionsのkextは現在、通常モードで使用中または保護されています。リカバリモードになったら、システム整合性保護を無効にすることなく削除できます。次の手順はうまくいきましたが、注意してください。

  • メニューをクリックします。再起動を選択
  • Command-Rを押しながら回復システムを起動します
  • リカバリメニューからディスクユーティリティを選択します
  • ディスクユーティリティ内で、メインハードドライブ(例:Macintosh HD)をクリックしてから、[マウント]をクリックします。
  • ディスクユーティリティを終了します
  • メニューバーの[ユーティリティ]をクリックし、[ターミナル]を選択します。
  • 次のコマンドを使用します。

cd /Volumes/Macintosh\ HD/Library/StagedExtensions/Library/Extensions/
rm -rf NAME_OF_EXTENSION.kext
  • ターミナルアプリを閉じます
  • メニューをクリックし、[再起動]を選択します

そこから、ScreenFlowのオーディオkextを再インストールすることができ、機能しました。また、Parallels kextを完全に削除するのにも役立ちます。

3
user503821