Composer로 코어를 어떻게 업데이트합니까?


10

물론, 나는 작곡가 초보자입니다. 그래서 이전 사이트에서 작곡가 관리자를 사용하여 Drupal의 핵심을 업데이트했습니다. 사용하기가 매우 간단했습니다 ( "composer drupal-update"만 실행). 그러나 작곡가 관리자는 더 이상 사용되지 않습니다.

Drupal 8.1의 개선으로 인해이 모듈의 Drupal 8 버전은 더 이상 사용되지 않으며 더 이상 필요하지 않습니다. 필요한 모듈을 얻으려면 Composer를 직접 사용하고 필요한 라이브러리도 다운로드하십시오.

그래서 오늘 보안 업데이트를 코어에 적용해야한다는 경고를 받았지만 작곡가로 Drupal 코어를 업데이트하는 방법에 대한 문서를 찾을 수 없습니다.

Drupal Console, Drush를 통해 수행됩니까, 아니면 실행해야하는 실제 작곡가 명령입니까? 선호하는 프로세스가 "drupal.org에서 최신 버전의 Drupal을 다운로드하고 모든 파일을 수동으로 교체"하는 것 외에는 확실하지 않습니다.


drush를 사용할 수 있습니다. drush up drupal이것은 composer.json tho (및 기타 파일)을 무시할 수 있으므로 백업하고 필요한 경우 되돌립니다. 사용 후 composer update잘 가야합니다
Trupal

"(그리고 다른 파일들)", 그래, 내가 걱정하는 "다른 파일들"이다. 그 시점에서 나는 공식 다운로드에서 수동으로 교체하고 composer 업데이트를 실행할 수 있습니다. 더 쉬운 프로세스가 있어야합니다. 더 이상 대안이없는 경우 작곡가 관리자를 사용하지 않는 것이 의미가없는 것 같습니다.
DrupalMonster

답변:


10

Composer를 사용하여 Drupal을 업데이트하려면 "drupal/core": "~8.1"라인을 바꾸기 섹션에서 필요 섹션 으로 이동하면 됩니다 . 결국 composer.json 파일의 내용은 다음과 같습니다.

{
    "name": "drupal/drupal",
    "description": "Drupal is an open source content management platform powering millions of websites and applications.",
    "type": "project",
    "license": "GPL-2.0+",
    "require": {
        "composer/installers": "^1.0.21",
        "wikimedia/composer-merge-plugin": "~1.3",
        "drupal/core": "~8.1"
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "config": {
        "preferred-install": "dist",
        "autoloader-suffix": "Drupal8"
    },
    "extra": {
        "_readme": [
            "By default Drupal loads the autoloader from ./vendor/autoload.php.",
            "To change the autoloader you can edit ./autoload.php."
        ],
        "merge-plugin": {
            "include": [
                "core/composer.json"
            ],
            "recurse": false,
            "replace": false,
            "merge-extra": false
        }
    },
    "autoload": {
        "psr-4": {
            "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
        }
    },
    "scripts": {
        "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
        "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
        "post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
        "post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
    },
}

drush upcDrupal을 업데이트 하는 데 사용 되었지만 composer.json 파일과 공급 업체 디렉토리를 재정의했습니다. 결과적으로 벤더 디렉토리 composer update의 내용을 업데이트하기 위해 항상 실행해야합니다 .

이제 Composer를 사용하여 Drupal을 업데이트하고 사용중인 모듈을 다운로드 / 업데이트 할 수도 있습니다.

내가 사용하는 composer.json 파일은 다음과 같습니다.

{
    "name": "drupal/drupal",
    "description": "Drupal is an open source content management platform powering millions of websites and applications.",
    "type": "project",
    "license": "GPL-2.0+",
    "require": {
        "composer/installers": "^1.0.21",
        "wikimedia/composer-merge-plugin": "~1.3",
        "drupal/core": "~8.1",
        "drupal/imagick": "8.1.*@dev",
        "drupal/mollom": "^8.1",
        "drupal/honeypot": "^8.1"
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "config": {
        "preferred-install": "dist",
        "autoloader-suffix": "Drupal8"
    },
    "extra": {
        "_readme": [
            "By default Drupal loads the autoloader from ./vendor/autoload.php.",
            "To change the autoloader you can edit ./autoload.php."
        ],
        "merge-plugin": {
            "include": [
                "core/composer.json"
            ],
            "recurse": false,
            "replace": false,
            "merge-extra": false
        }
    },
    "autoload": {
        "psr-4": {
            "Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
        }
    },
    "scripts": {
        "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
        "post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
        "post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
        "post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
    },
    "repositories": {
        "drupal": {
            "type": "composer",
            "url": "https://packagist.drupal-composer.org"
        }
    }
}

내가 말한대로 그 줄을 옮기는 것 외에도 다음 명령을 실행했습니다.

composer config repositories.drupal composer https://packagist.drupal-composer.org
composer require drupal/honeypot
composer require drupal/mollom
composer require drupal/imagick 8.1.*@dev

첫 번째로 Drupal 모듈이 필요하고 업데이트 할 수 있습니다.

내가 마지막으로 시도했을 때 Drupal 공식 저장소는 여전히 알파 단계에 있었고 Composer 패키지로 선언되었지만 패키지 유형 (예 : drupal-module)을 설정하지 않은 모듈에 문제가있었습니다. 나는 그들이 지금 문제를 해결하기를 바랍니다. Drupal Packager 저장소의 경우 사용할 명령은 다음과 같습니다.

composer config repositories.drupal composer https://packages.drupal.org/8
composer require drupal/honeypot
composer require drupal/mollom
composer require drupal/imagick 1.*@dev

이미 https://packagist.drupal-composer.org를 사용 중이고 공식 Packagist 사이트로 바꾸려면 첫 번째 명령을로 바꾸어야합니다 composer config repositories.0 composer https://packages.drupal.org/8. 이는 다른 저장소가없는 경우 작동합니다. packages.drupal.org 사용 .

또한 packagist.drupal-composer.org는 2017 년 1 월 (또는 Drupal.org의 공식 패키지 리포지토리가 준비 될 때) 더 이상 사용되지 않을 예정 입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.