composer로 패키지를 업데이트하고 업데이트 할 내용을 알고 있습니다.
On 2월 10, 2021 by admin저는 Drupal 8과 composer로 작업을 시작했고 업데이트 방법을 알아 내려고합니다. 워크 플로가 작동해야합니다. 몇 년 동안 Drupal 7 서버를 관리 할 때의 기본 사항을 알고 있지만 Composer 부분은 저를 괴롭 히고 있습니다.
지금은 Drupal 설치의 루트 폴더에서 실행합니다 (유지 관리 모드 활성화). composer outdated
업데이트가 필요한 패키지 목록을 얻습니다.
문서에서 알 수있는 한, 다음으로 시작하는 패키지 만 업데이트해야합니다. “drupal /”. 콘솔과 코어 만 구식이라고 가정하고 composer update drupal/console drupal/core --with-dependencies
를 실행하면 업데이트를 가져 와서 수행합니다. 이 작업이 완료된 후 composer outdated
를 다시 실행하면 composer에 따라 구식 패키지가 계속 표시됩니다. 의도 된 건가요? 아니면 이러한 패키지를 업데이트해야합니까?
Drupal은 특정 버전의 패키지를 사용하여 빌드 된 것 같습니다. 따라서 모든 패키지를 업데이트하면 일부 문제가 발생할 수 있습니다. 그렇죠? 누군가가 패키지가 무엇인지 어떻게 알고 있어야합니까? 업데이트되고 어떤 버전이 특정 버전으로 유지되어야하나요?
composer outdated
를 실행할 때 얻게되는 정보입니다.
alchemy/zippy 0.4.3 0.4.8 Zippy, the archive manager companion composer/installers v1.4.0 v1.5.0 A multi-framework Composer library installer consolidation/annotated-command 2.8.1 2.8.2 Initialize Symfony Console commands from annotated command class methods. consolidation/output-formatters 3.1.12 3.1.13 Format text by applying transformations provided by plug-in formatters. cweagans/composer-patches 1.6.2 1.6.4 Provides a way to patch Composer packages. dflydev/dot-access-data v1.1.0 v2.0.0 Given a deep data structure, access data by dot notation. drupal/php 1.0.0-beta1 1.0.0-beta2 Allows embedded PHP code/snippets to be evaluated. Enabling this can cause security and performance issues as it allows users to execute PHP code on your site. egulias/email-validator 1.2.14 2.1.3 A library for validating emails fabpot/goutte v3.2.1 v3.2.2 A simple PHP Web Scraper gabordemooij/redbean v4.3.4 v5.0 RedBeanPHP ORM jcalderonzumba/gastonjs v1.0.3 v1.2.0 PhantomJS API based server for webpage automation phpdocumentor/reflection-docblock 2.0.5 4.2.0 phpspec/prophecy v1.7.2 1.7.3 Highly opinionated mocking framework for PHP 5.3+ phpunit/php-code-coverage 2.2.4 5.3.0 Library that provides collection, processing, and rendering functionality for PHP code coverage information. phpunit/php-file-iterator 1.4.2 1.4.5 FilterIterator implementation that filters files based on a list of suffixes. phpunit/php-token-stream 1.4.11 2.0.2 Wrapper around PHP"s tokenizer extension. phpunit/phpunit 4.8.36 6.5.5 The PHP Unit Testing framework. phpunit/phpunit-mock-objects 2.3.8 5.0.6 Mock Object library for PHPUnit sebastian/comparator 1.2.4 2.1.1 Provides the functionality to compare PHP values for equality sebastian/diff 1.4.3 2.0.1 Diff implementation sebastian/environment 1.3.8 3.1.0 Provides functionality to handle HHVM/PHP environments sebastian/exporter 1.2.2 3.1.0 Provides the functionality to export PHP variables for visualization sebastian/global-state 1.1.1 2.0.0 Snapshotting of global state sebastian/recursion-context 1.0.5 3.0.0 Provides functionality to recursively process PHP variables sebastian/version 1.0.6 2.0.1 Library that helps with managing the version number of Git-hosted PHP projects symfony-cmf/routing 1.4.1 2.0.3 Extends the Symfony2 routing component for dynamic routes and chaining several routers symfony/browser-kit v3.3.10 v4.0.3 Symfony BrowserKit Component symfony/class-loader v3.2.14 v3.4.3 Symfony ClassLoader Component symfony/config v3.2.14 v4.0.3 Symfony Config Component symfony/console v3.2.14 v4.0.3 Symfony Console Component symfony/css-selector v3.3.10 v4.0.3 Symfony CssSelector Component symfony/debug v3.4.3 v4.0.3 Symfony Debug Component symfony/dependency-injection v3.2.14 v4.0.3 Symfony DependencyInjection Component symfony/dom-crawler v3.4.3 v4.0.3 Symfony DomCrawler Component symfony/event-dispatcher v3.2.14 v4.0.3 Symfony EventDispatcher Component symfony/expression-language v3.4.3 v4.0.3 Symfony ExpressionLanguage Component symfony/filesystem v3.4.3 v4.0.3 Symfony Filesystem Component symfony/finder v3.4.3 v4.0.3 Symfony Finder Component symfony/http-foundation v3.2.14 v4.0.3 Symfony HttpFoundation Component symfony/http-kernel v3.2.14 v4.0.3 Symfony HttpKernel Component symfony/process v3.2.14 v4.0.3 Symfony Process Component symfony/routing v3.2.14 v4.0.3 Symfony Routing Component symfony/serializer v3.2.14 v4.0.3 Symfony Serializer Component symfony/translation v3.2.14 v4.0.3 Symfony Translation Component symfony/validator v3.2.14 v4.0.3 Symfony Validator Component symfony/var-dumper v3.4.3 v4.0.3 Symfony mechanism for exploring and dumping PHP variables symfony/yaml v3.2.14 v4.0.3 Symfony Yaml Component twig/twig v1.35.0 v2.4.4 Twig, the flexible, fast, and secure template language for PHP webflo/drupal-finder 1.0.0 1.1.0 Helper class to locate a Drupal installation from a given path.
이것은 상당히 바닐라 Drupal 설치입니다. 몇 개의 모듈과 하나의 테마 만 추가되었습니다.이 사이트는 공식 문서에 언급 된 drupal-composer 템플릿을 사용하여 빌드되었다는 점도 언급해야합니다 ( https://github.com/drupal-composer/drupal-project ).
댓글
답변
솔직히 일반적인 Drupal 사이트와 같은 코드베이스의 경우 이것은 해결하기 어려운 문제. 예를 들어, 어제 Drupal 코어 8.4.5에서 8.5.0으로 방금 업그레이드 한 Drupal VM Prod 코드베이스를 살펴 보겠습니다.
- composer.json의 drupal / core 버전 제약 조건은
~8.4
- 실행중인
composer update drupal/core --with-dependencies
가 업데이트되지 않았습니다. Drupal 코어; 8.4.5에서 멈췄습니다. -
composer update
실행 중 (핵 옵션이 더 많음-contrib 모듈 및 기타 종속성을 포함한 모든 항목을 업데이트합니다. 문제를 일으킬 수 있고 복잡한 사이트에서 개별 업데이트를 테스트하기가 훨씬 더 어려워 질 수 있습니다!) Drupal 코어를 업그레이드하기 위해 노력했지만 … 그것은 이상적이지 않습니다.
그래서 그것에 대해 물었습니다. 문제 composer가 8.4.4에서 8.5.0-alpha1로 업그레이드하지 못했습니다 , 심지어 어떤 종속성이 내 Drupal 코어 업그레이드를 차단하는지 알아 내려고했습니다. Composer 명령 :
composer prohibits drupal/core:8.5.0
이것은 다양한 심포니 구성 요소를 나열했습니다. 그래서 저는 거기에 앉아서 공동 작업을 할 수있었습니다. 14 개의 구성 요소를 composer update
명령에 py-paste로 붙여 넣었지만 재미가 없어서 계속 돌아 다녔습니다.
나중에 댓글 스레드에서 @eiriksm은 내 프로젝트에 symfony/config
(drush 및 drupal 콘솔의 종속성)가 있으므로 composer update drupal/core symfony/config --with-dependencies
.
업데이트 명령에 symfony/config
를 추가해야한다는 것을 “어떻게 알았는지 모르겠습니다 (다른 모든 심포니 구성 요소) …하지만 그렇게한다면 다른 사람들이 나중에 혜택을 볼 수 있도록 해당 정보로이 답변을 업데이트하려고합니다!
댓글
- 또한이 주제에 대한 블로그 게시물을 작성하여 좀 더 많은 정보를 제공합니다. Composer로 drupal / core 업데이트-하지만 Drupal 코어는 ' 업데이트하지 않음
답변
부 버전 업데이트 (8.3> 8.4, 8.4> 8.5) 작곡가와 함께하는 것은 악몽입니다.
composer update
는 “포용”되어야하며 composer.json
아마도 현재 설치된 버전에 모두 잠근 다음 모듈을 업데이트하려는 경우에만 버전을 변경합니다. 그것은 정말로 그렇게 큰 문제가 아닙니다.
그게 작곡가 이전에 우리가했던 방식입니다. drush up modulename
등으로 한 번에 업데이트 할 모듈을 결정했습니다.
특정 버전 번호로 모듈을 설치하는 것이 좋습니다.
composer require "drupal/address:1.0"
아니요
composer require "drupal/address:~1.0"
나중에 composer.json
를 "1.0"
로 변경할 수 있습니다.
,하지만 특정 버전 번호를 설치하는 경우에는 그럴 필요가 없습니다.
설명
- 부 버전 업데이트 (8.3 > 8.4, 8.4 > 8.5) 작곡가와 함께하는 것은 악몽입니다. I ' 약 10 8.4-> 지난 주에 8.5 업데이트를 수행했습니다. 모두 작성기를 통해
composer update
를 실행하는 것만 큼 간단합니다. , 아무 문제도 없습니다. ' 어떤 조합으로 인해 사람들이이 문제로 어려움을 겪고 있는지 잘 모르겠습니다. ' t 아직 Drupal / Composer에서 단일 문제가 발생했습니다. - @Clive 만약 당신이 그냥 Drupal Core를 업데이트하고 싶다면 d 모든 핵심, 기여 및 기타 종속성이 아니며 ' Core 이외의 다른 모든 항목에 대해 특정 버전을 잠그지 않습니다 …
composer update
는 의도하지 않은 결과를 매우 많이 초래할 수 있습니다. 많은 사이트의 경우 일반적으로 모든 것을 항상 업데이트해도 안전하지만 일부 사이트에서는 재앙이 될 수 있습니다. 프로덕션으로 이동하기 전에 항상 테스트하십시오!
composer show --tree
는 업데이트가 필요한 패키지를 결정하는 데 도움이 될 수있는 종속성 트리를 표시합니다. 결정을 알리세요. github.com/webflo/drupal-core-strict 유용하며, 더 확실하게 업데이트하는 데 도움이 될 수있는 알려진 좋은 버전에 대한 핵심 종속성을 수정합니다.composer update
명령을 사용하고 composer.json 파일을 사용하여 패키지를 최소한 코어)? 그런 다음 업데이트 중에 개발자에서 문제가 발생하면 각 패키지 업데이트를 살펴보고 ' 문제를 일으키는 원인을 찾습니다. 말이되는 것 같습니다.