安全に削除できるモジュールフォルダのリストを取得するにはどうすればよいですか?


7

最近、を通じて多くの不要なモジュールをアンインストールしましたadmin/modules/uninstall
次に、モジュールのどのフォルダをから削除できるかを理解したいと思いますsites/all/modules

試しましたがdrush pmi、情報が多すぎます。

安全に削除できるフォルダのリストを取得するにはどうすればよいですか?ドラッシュコマンドはありますか?

回答:


3

これは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

これを使用してフォルダーを安全に削除できます:)


Unknown option: --status.Drush 8.1.12でこれを行うとき
Nick

8

これを使って:

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モジュールを安全に削除できます。


エラーが発生しました:不明なオプション:--fields、-format(UbuntuのDrush安定バージョン5.10.0)。もっと新鮮なリリースが必要だと思います。
Dimetry 2015年

はい、drushのインストールを更新する必要があります
sanzante

私が作ったDrushの更新を。これでコマンドを実行できます。これは理想的なソリューションではありませんが、安全に削除できるフォルダーを確認しました。ty
Dimetry

2

その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.

私は考えを理解しています。ありがとう。しかし、どうすればサブモジュールを分離できますか?たとえば、Node Limit UserNot installed表示されていますが、メインのNode Limit
Dimetry

削除しようとしているサブモジュールを含むモジュールの名前付きの例を挙げられますか?サブモジュールは、親モジュール内にネストされる場合があります。ただし、一緒にパッケージ化されている場合は、そのままにしておいても問題はありません。適切に作成されていない場合、一部のモジュールはライブラリまたは子フォルダ内のコードを使用する場合があります。私の腸は、一緒にパッケージ化されている場合はそのままにしておきます。
Rick

それ以外の場合は、VM / Vagrant Boxでドライランを実行することもできます。あなたは開発者を持っていますか、それともdrupalインストールを捨てますか?モジュールをインストールし、devel_generateを使用してランダムなコンテンツを作成し、フォルダーを削除および削除します。何が壊れるかを見てください。これらのことを最初に捨てるマシンでテストするのが常に最善です!
Rick

2

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)"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.