Làm thế nào để có được danh sách các thư mục mô-đun có thể bị xóa một cách an toàn?


7

Gần đây tôi đã gỡ cài đặt rất nhiều mô-đun không cần thiết admin/modules/uninstall.
Bây giờ tôi muốn hiểu những thư mục của các mô-đun có thể bị xóa khỏi sites/all/modules.

Tôi đã thử drush pmi, nhưng có quá nhiều thông tin.

Làm thế nào tôi có thể nhận được danh sách các thư mục có thể bị xóa một cách an toàn bây giờ? Bất kỳ lệnh drush có thể được?

Câu trả lời:


3

Điều này hoạt động trên máy Linux. Nhưng tôi có thể làm một cái gì đó tương tự trên windows cũng tôi nghĩ.

Sử dụng lệnh sau để có được danh sách các mô-đun bị vô hiệu hóa hoặc gỡ cài đặt.

    drush pml --type=Module --status="disabled,not installed" --no-core 
--pipe | paste -s -d,

Bạn sẽ nhận được một danh sách được phân tách bằng dấu phẩy như thế này

    admin_toolbar,admin_toolbar_tools,features,features_ui,entity_browser,
entity_browser_example,config_update,content_types_full_export

Nếu bạn muốn xóa chỉ mô-đun đã gỡ cài đặt, bạn có thể xóa bị tắt khỏi tùy chọn trạng thái trong truy vấn đầu tiên.

Khi bạn có danh sách các mô-đun chưa được phân tách bằng dấu phẩy, bạn có thể chuyển nó vào truy vấn pmi drush như thế này.

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

Bạn sẽ nhận được thông số như

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

Bạn có thể sử dụng điều này để xóa các thư mục một cách an toàn :)


Unknown option: --status.khi làm điều này trong drush 8.1.12
Nick

8

Dùng cái này:

drush pmi --fields=type,project,title,status,path --format=table|sort

Điều này cung cấp cho bạn một danh sách mô-đun với năm cột:

  • Đầu tiên là loại dự án: mô-đun hoặc chủ đề.

  • Thứ hai là dự án mô-đun, cho các khung nhìn exampe, logintoboggan, admin_menu, v.v.

  • Thứ ba là trạng thái cài đặt: đã bật (đang sử dụng), bị vô hiệu hóa (không sử dụng nhưng cài đặt thông tin trong DB) và chưa được cài đặt (chưa được cài đặt hoặc đã được gỡ cài đặt).

  • Cột thứ tư là tên mô-đun. Một mô-đun được tải xuống từ drupal.org có thể có một số mô-đun bên trong (mô-đun được tải xuống là dự án và các mô-đun bên trong là các mô-đun thực).

  • Cột thứ năm là đường dẫn đến mô-đun.

Với thông tin này, bạn có thể xóa mọi dự án (cột thứ hai) một cách an toàn rằng tất cả các mô-đun của nó ở trạng thái 'chưa được cài đặt'.

Ví dụ, xem danh sách phân đoạn này:

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 

Bạn có thể gỡ bỏ mô-đun ldap một cách an toàn vì tất cả các mô-đun không được cài đặt nhưng không được lập lịch công việc vì một trong các mô-đun của nó được bật.


Tôi có lỗi: Tùy chọn không xác định: --fields, --format (phiên bản ổn định drush 5.10.0 tại Ubuntu). Tôi nghĩ rằng tôi cần phát hành mới hơn.
Kích thước

Có, bạn nên cập nhật cài đặt drush của mình
sanzante

Tôi đã thực hiện cập nhật Drush . Bây giờ tôi có thể thực thi lệnh. Đó không phải là giải pháp lý tưởng, nhưng bây giờ tôi thấy những thư mục nào có thể bị xóa một cách an toàn. ty
Kích thước

2

Tôi có hai gợi ý cho bạn về cách lọc lệnh drush đó. Một là với ống và grep. Khác là với các đối số tùy chọn.

Trước hết tôi nghĩ bạn muốn pml drush (chữ thường "L", không phải chữ thường "I").

(1) Ống và Grep Xem lệnh bên dưới để liệt kê mọi thứ với trạng thái "Chưa cài đặt". Những điều sau đây có thể giúp bạn hình dung rõ hơn về những gì xung quanh trang web của bạn. Ví dụ, đây là những gì có nhưng "chưa được cài đặt" trên hộp dev của tôi.

$ 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        

Được thực hiện riêng lẻ đó là

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'

Cho rằng bạn cũng có thể làm như sau:

$ drush pml  | grep 'Enabled'
$ drush pml  | grep 'Disabled'

(2) Với các đối số tùy chọn để làm mờ pml

Bạn cũng có thể thay đổi nó một chút với các đối số khác nhau trong lệnh pml drush

$ 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.       

Ví dụ: bạn có thể sử dụng

$ 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.

Tôi hiểu ý tưởng. Cảm ơn. Nhưng làm thế nào tôi có thể tách các mô đun con? Ví dụ: tôi thấy Người dùng giới hạn nútChưa được cài đặt , nhưng tôi không thể xóa thư mục node_limit vì tôi sử dụng Giới hạn nút
Dimipse

Bạn có thể đưa ra một ví dụ được đặt tên của một mô-đun với các mô hình con mà bạn đang cố gắng loại bỏ không? Các mô hình con đôi khi chỉ được lồng bên trong mô đun mẹ. Mặc dù, nếu chúng được đóng gói cùng nhau, có thể không đau để rời khỏi nó. Nếu không được tác giả tốt, một số mô-đun có thể sử dụng thư viện hoặc mã trong các thư mục con. Ruột của tôi là, nếu nó được đóng gói cùng nhau, hãy để lại nó.
Rick

Nếu không, bạn cũng có thể thực hiện chạy khô trong Hộp VM / Vagrant. Bạn có một dev hoặc vứt bỏ cài đặt drupal? Cài đặt mô-đun, sử dụng devel_generate để tạo nội dung ngẫu nhiên, xóa và xóa các thư mục. Xem những gì phá vỡ. Luôn luôn tốt nhất để kiểm tra những điều này trên máy vứt đi đầu tiên!
Rick

2

Bạn cũng có thể truy vấn DB.

Danh sách các mô-đun bị vô hiệu hóa nhưng KHÔNG được gỡ cài đặt (không thể xóa khỏi cơ sở mã)

drush sqlq "select name from system where type = 'module' and status = 0 and schema_version NOT IN (0, -1)"

Danh sách các mô-đun bị vô hiệu hóa và gỡ cài đặt (có thể bị xóa khỏi cơ sở mã)

drush sqlq "select name from system where type = 'module' and status = 0 and schema_version IN (0, -1)"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.