Mengapa "komposer memperbarui drupal / drupal" tidak berfungsi?


10

Saya menginstal situs Drupal 8.2.0 dengan composer create-project drupal/drupal testsite.

Sekarang saya ingin memutakhirkannya ke Drupal 8.2.1. Namun, berlari composer update drupal/drupal tidak berhasil. Ini mencetak kesalahan berikut:

Paket "drupal / drupal" terdaftar untuk pembaruan tidak diinstal. Mengabaikan

Bagaimana saya melakukan ini? Dukungan ini jelas didokumentasikan dalam contoh .ignignore.

# Ignore core when managing all of a project's dependencies with Composer
# including Drupal core.
# core

Jadi harus ada cara untuk melakukan ini dengan komposer, tetapi bagaimana?

Jawaban:


5

Sunting: ini mungkin tidak membantu b / c Saya baru saja membaca ulang pernyataan Anda dan Anda tidak memiliki kasus yang sama dengan milik saya di mana saya berasal dari instalasi Drupal 8 yang lama, tetapi saya akan membiarkannya jika ada orang lain yang memiliki ini masalah dan cobalah untuk melihat apakah saya dapat menemukan masalah spesifik yang Anda alami. Maaf.

Saya memiliki masalah ini ketika berhadapan dengan pembaruan terbaru dan ini adalah masalah saya tetapi YMMV jadi jika tidak berhasil, beri tahu saya.

Ini mungkin masalah bahwa file komposer Anda disetel ke daftar repositori lama di composer.org. Baru-baru ini, Drupal menyiapkan titik akhir komposer mereka sendiri, satu untuk Drupal 7 dan satu lagi untuk Drupal 8. Anda dapat membaca lebih lanjut tentang perubahan itu di sini: https://www.drupal.org/docs/develop/using-composer/using-composer- untuk menginstal-drupal-paket-melalui-drupalorg

Ini adalah perintah yang perlu dijalankan untuk menukar repositori melalui Drupal.org.

$ composer config repositories.0 
$ composer https://packages.drupal.org/8

2
Pesan kesalahan yang menarik dari perintah kedua: "Tidak ada perintah yang ditentukan di namespace" https "." Saya benar-benar tersesat sekarang.
Mojo

4

Pikir saya menyelesaikannya. Saya pikir saya akan memerlukan file root composer.json yang berbeda yang menarik dalam paket drupal alih-alih menggantikannya, tetapi saya tidak tahu bagaimana melakukannya.

Untungnya, seseorang telah melakukan ini dan mengemas ulang Drupal dengan cara yang ramah komposer: https://github.com/drupal-composer/drupal-project (Rupanya belum ada versi stabil.)

Dengan menggunakan composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dirsaya bisa mendapatkan instalasi yang dapat diperbarui dengan komposer.


2
Perintah ini composer create-projectmenggunakan proyek yang diminta sebagai templat untuk proyek baru, jadi dalam upaya pertama Anda, git.drupal.org/project/drupal.git digunakan sebagai templat untuk proyek baru Anda. Menggunakan github.com/drupal-composer/drupal-project sebagai gantinya, menyebabkan Drupal menjadi salah satu bagian dari proyek. Bahkan, alih-alih menggunakan drupal/drupal, ia menggunakan drupal/core(untuk direktori inti) dan drupal-composer/drupal-scaffolduntuk file penting lainnya seperti index.php dan .htaccess.
David Lanier

3

Perintah composer create-projectmengkloning paket yang diminta, yang dalam hal ini adalah https://git.drupal.org/project/drupal.git . Di akhir proses pembuatan proyek, Anda akan ditanya apakah Anda ingin menghapus riwayat VCS yang ada. Jika Anda menjawab n, Anda akan memiliki cara untuk memperbarui dari repositori drupal hulu. Arahkan ke tempat tes, dan gunakan git untuk mengambil dan memeriksa versi Drupal yang Anda inginkan. Kemudian jalankan composer installuntuk mendapatkan dependensi yang diidentifikasi di composer.json dan composer.lock dari Drupal versi terbaru.


3

Pada baris perintah, kami harus meminta inti drupal (ganti dengan versi Anda):

composer require drupal/core:8.6.3 --update-with-dependencies

Dalam file composer.json di bawah ganti kami harus menghapus "drupal / core": "^ 8.6" jadi ganti terlihat seperti:

"replace": {

},

dalam file composer.json kami sekarang. Kami kemudian berlari:

composer update

dan drupal diperbarui ke versi terbaru.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.