Composerでコアを更新するにはどうすればよいですか?


10

わかりました、確かに私は作曲家の初心者です。そのため、以前のサイトでは、作曲マネージャーを使用してDrupalのコアを更新しました。これは非常に簡単に使用できました(「composer drupal-update」を実行するだけです)。ただし、composer managerは非推奨になったと言っています。

Drupal 8.1の改良により、このモジュールのDrupal 8バージョンは非推奨となり、不要になりました。Composerを直接使用して必要なモジュールを取得します。これにより、必要なライブラリもダウンロードされます。

今日、コアにセキュリティ更新を適用する必要があるという警告が表示されましたが、Drupalコアをcomposerで更新する方法に関するドキュメントが見つかりません。

これは、Drupal Console、Drushを介して行われますか、それとも、実行する必要がある実際のcomposerコマンドですか?「drupal.orgからDrupalの最新バージョンをダウンロードし、すべてのファイルを手動で置き換える」以外の優先プロセスについては、はっきりしていません。


あなたはdrushを使うことができますdrush up drupal、これはあなたのcomposer.json tho(および他のファイル)をオーバーライドするかもしれないと思うので、それをバックアップし、必要に応じて元に戻します。その使用後composer update、あなたは行くのが良いはずです
Trupal

「(と他のファイル)」、ええ、それは私が心配している「他のファイル」です。その時点で、公式ダウンロードから手動で置き換えて、composer更新を実行することもできます。より簡単なプロセスがあるはずです。現在のところ代替手段がない場合、composer managerを廃止することはあまり意味がありません。
DrupalMonster 2016年

回答:


10

Composerを使用してDrupalを更新するには、"drupal/core": "~8.1"行をreplaceセクションからrequireセクションに移動するだけです。最後に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

1つ目は、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.