最近、admin/modules/uninstall
を使用して、不要なモジュールをたくさんアンインストールしました。
ここで、モジュールのどのフォルダーをsites/all/modules
から削除できるかを理解します。
drush pmi
を試しましたが、情報が多すぎます。
安全に削除できるフォルダのリストを取得するにはどうすればよいですか?ドラッシュコマンドは何ですか?
これはLinuxマシンで動作します。しかし、Windowsでも同様のことができると思います。
次のコマンドを使用して、無効またはアンインストールされたモジュールのリストを取得します。
drush pml --type=Module --status="disabled,not installed" --no-core
--pipe | paste -s -d,
このようなコンマ区切りのリストが表示されます
admin_toolbar,admin_toolbar_tools,features,features_ui,entity_browser,
entity_browser_example,config_update,content_types_full_export
アンインストールされたモジュールのみを削除する場合は、最初のクエリでステータスオプションから無効を削除できます。
アンインストールされたモジュールのコンマ区切りのリストを取得したら、次のようにdrush pmiクエリに渡すことができます。
drush pmi --format=csv --fields=path
admin_toolbar,admin_toolbar_tools,features,features_ui,entity_browser,
entity_browser_example,config_update,content_types_full_export
あなたは出力を得るでしょう
modules/admin_toolbar
modules/admin_toolbar/admin_toolbar_tools
modules/features
modules/features/modules/features_ui
modules/entity_browser
modules/entity_browser/modules/example
modules/config_update
modules/features_modules/content_types_full_export
これを使用してフォルダを安全に削除できます:)
これを使って:
drush pmi --fields=type,project,title,status,path --format=table|sort
これにより、5つの列を持つモジュールリストが得られます。
最初はプロジェクトのタイプです:モジュールまたはテーマ。
2つ目はモジュールプロジェクトです。たとえば、ビュー、logintoboggan、admin_menuなどです。
3つ目はインストールステータスです。有効(使用中)、無効(使用されていませんが、DBに情報をインストール)、インストールされていません(まだインストールされていないか、すでにアンインストールされています)。
4列目はモジュール名です。 drupal.orgからダウンロードしたモジュールには、複数のモジュールを含めることができます(ダウンロードしたモジュールがプロジェクトで、内側のモジュールが実際のモジュールです)。
5番目の列は、モジュールへのパスです。
この情報を使用して、すべてのモジュールが「インストールされていない」状態にあるすべてのプロジェクト(2番目の列)を安全に削除できます。
たとえば、次のフラグメントリストを参照してください。
module job_scheduler Job Scheduler enabled sites/all/modules/contrib/job_scheduler
module job_scheduler Job Scheduler Trigger not installed sites/all/modules/contrib/job_scheduler/modules/job_scheduler_trigger
module jquery_update jQuery Update enabled sites/all/modules/contrib/jquery_update
module l10n_client Localization client enabled sites/all/modules/contrib/l10n_client
module l10n_update Localization update enabled sites/all/modules/contrib/l10n_update
module languageicons Language Icons enabled sites/all/modules/contrib/languageicons
module ldap LDAP Authentication not installed sites/all/modules/contrib/ldap/ldap_authentication
module ldap LDAP Authorization - Roles not installed sites/all/modules/contrib/ldap/ldap_authorization/ldap_authorization_drupal_role
module ldap LDAP Authorization not installed sites/all/modules/contrib/ldap/ldap_authorization
module ldap LDAP Authorization - OG not installed sites/all/modules/contrib/ldap/ldap_authorization/ldap_authorization_og
module ldap LDAP Feeds not installed sites/all/modules/contrib/ldap/ldap_feeds
module ldap LDAP Help not installed sites/all/modules/contrib/ldap/ldap_help
module ldap LDAP Query not installed sites/all/modules/contrib/ldap/ldap_query
module ldap LDAP Servers not installed sites/all/modules/contrib/ldap/ldap_servers
module ldap LDAP SSO not installed sites/all/modules/contrib/ldap/ldap_sso
module ldap LDAP Test Module not installed sites/all/modules/contrib/ldap/ldap_test
module ldap LDAP User Module not installed sites/all/modules/contrib/ldap/ldap_user
module ldap LDAP Views not installed sites/all/modules/contrib/ldap/ldap_views
module libraries Libraries enabled sites/all/modules/contrib/libraries
すべてのモジュールがインストールされていないが、モジュールの1つが有効になっているためジョブスケジューラではないため、ldapモジュールを安全に削除できます。
そのdrushコマンドをフィルタリングする方法について2つの提案があります。 1つはパイプとgrepを使用する方法です。もう1つは、オプション引数を使用する方法です。
まず、drush pml(小文字の「I」ではなく小文字の「L」)が必要だと思います。
(1)パイプとGrep以下のコマンドを参照して、ステータスが「未インストール」のすべてを一覧表示します。以下は、サイトの状況をよりよく把握するのに役立ちます。たとえば、私の開発ボックスには「インストールされていません」というものがあります。
$ drush pml | grep 'Not installed' | grep -v Core
Administration Actions permissions (VBO) (actions_permissions) Module Not installed 7.x-3.2
BackgroundField BackgroundField (backgroundfield) Module Not installed 7.x-1.5
Chaos tool suite Better Jump Menus (jump_menu) Module Not installed 7.x-1.4
Chaos tool suite Chaos Tools (CTools) AJAX Example (ctools_ajax_sample) Module Not installed 7.x-1.6
Chaos tool suite Chaos Tools (CTools) Plugin Example (ctools_plugin_example) Module Not installed 7.x-1.6
Chaos tool suite Custom content panes (ctools_custom_content) Module Not installed 7.x-1.6
Chaos tool suite Custom rulesets (ctools_access_ruleset) Module Not installed 7.x-1.6
Chaos tool suite Page manager existing pages (pm_existing_pages) Module Not installed 7.x-1.4
Chaos tool suite Stylizer (stylizer) Module Not installed 7.x-1.6
Chaos tool suite Term Depth access (term_depth) Module Not installed 7.x-1.6
Chaos tool suite Views content panes (views_content) Module Not installed 7.x-1.6
それは個別に撮影された
drush pml \ # Shows table of modules/themes and their status
| grep 'Not installed' \ # Filters for any line WITH 'Not installed'
| grep -v Core # Filters OUT any line containing string 'Core'
あなたも次のことができると仮定すると:
$ drush pml | grep 'Enabled'
$ drush pml | grep 'Disabled'
(2)drush pmlのオプション引数あり
また、drush pmlコマンドのさまざまな引数を使用して、これを少し変えることもできます。
$ drush help pml
Show a list of available extensions (modules and themes).
Options:
--core Filter out extensions that are not in drupal core.
--no-core Filter out extensions that are provided by drupal core.
--package Filter by project packages. You can use multiple comma separated values. (i.e. --package="Core
- required,Other").
--pipe Returns a whitespace delimited list of the names of the resulting extensions.
--status=<disabled> Filter by extension status. Choices: enabled, disabled and/or 'not installed'. You can use
multiple comma separated values. (i.e. --status="disabled,not installed").
--type=<module> Filter by extension type. Choices: module, theme.
たとえば、
$ drush pml --no-core --status="not installed" --type=module
Package Name Version
Administration Actions permissions (VBO) (actions_permissions) 7.x-3.2
BackgroundField BackgroundField (backgroundfield) 7.x-1.5
Chaos tool suite Better Jump Menus (jump_menu) 7.x-1.4
Chaos tool suite Chaos Tools (CTools) AJAX Example (ctools_ajax_sample) 7.x-1.6
***Note and caution:*** Always try this stuff on a development or vagrant box first. NEVER blindly do this to a production box.
DBをクエリすることもできます。
無効になっているがアンインストールされていないモジュールのリスト(コードベースから削除できません)
drush sqlq "select name from system where type = 'module' and status = 0 and schema_version NOT IN (0, -1)"
無効およびアンインストールされたモジュールのリスト(コードベースから削除可能)
drush sqlq "select name from system where type = 'module' and status = 0 and schema_version IN (0, -1)"