Core'u Composer ile nasıl güncelleyebilirim?


10

Tamam, kuşkusuz ben besteci bir acemiyim. Bu yüzden önceki sitemde Drupal'ın çekirdeğini güncellemek için besteci yöneticisini kullandım. Bu kullanımı oldukça basit (sadece "besteci drupal-update" çalıştırın). Ancak, besteci yöneticisi artık kullanımdan kaldırıldığını söylüyor.

Drupal 8.1'deki geliştirmeler nedeniyle bu modülün Drupal 8 sürümü kullanımdan kaldırıldı ve artık gerekli değil. Gerekli kitaplıklarını da indirecek olan gerekli modülleri almak için Composer'ı doğrudan kullanın.

Bu yüzden bugün çekirdeğe güvenlik güncellemeleri uygulamam gerektiğine dair bir uyarı aldım, ancak Drupal çekirdeğini besteciyle nasıl güncelleyeceğinize dair herhangi bir belge bulamıyorum.

Bu Drupal Console, Drush ile mi yapılıyor yoksa çalıştırmam gereken gerçek bir besteci komutu mı? "Drupal'ın en son sürümünü drupal.org'dan indirin ve tüm dosyaları el ile değiştirin" dışında tercih edilen işlemin ne olduğu konusunda net değilim.


Sen drush kullanabilirsiniz drush up drupal, bence bu composer.json tho (ve diğer dosyaları) geçersiz kılabilir böylece yedek ve gerekirse geri. Bu kullanımdan sonra composer updateve gitmek için iyi olmalı
Trupal

"(ve diğer dosyalar)", Evet, endişelendiğim "diğer dosyalar". Bu noktada bunları resmi indirme ve çalıştırma bestecisi güncellemesinden manuel olarak değiştirebilirim. Daha kolay bir süreç olması gerektiği anlaşılıyor. Besteci yöneticiyi küçümsemek, şu anda alternatif olmadığında çok mantıklı görünmüyor.
DrupalMonster

Yanıtlar:


10

Drupal'ı Composer kullanarak güncellemek için, "drupal/core": "~8.1"satırı değiştirme bölümünden zorunlu bölüme taşımanız yeterlidir . Sonunda composer.json dosyasının içeriği aşağıdaki gibidir.

{
    "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'ı güncellemek için çalıştırıldım , ancak bu benim composer.json dosyamı ve satıcı dizinini geçersiz kılar. Bunun bir sonucu olarak composer update, satıcı dizininin içeriğini güncellemek için her zaman çalıştırmalıyım .

Şimdi, Drupal'ı güncellemek için Composer'ı kullanarak, kullandığım modülleri indirmek / güncellemek için de kullanabilirim.

Kullandığım composer.json dosyası aşağıdaki gibidir.

{
    "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"
        }
    }
}

Dediğim gibi bu satırı hareket ettirmenin yanı sıra, aşağıdaki komutları da uyguladım.

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

Birincisi Drupal modüllerine ihtiyaç duymamı ve bunları güncellememi sağlıyor.

En son denediğimde, Drupal resmi deposu hala alfa aşamasındaydı ve bana Composer paketleri olarak bildirilen, ancak paket türünü (yani drupal modülü) ayarlamayan modüller ile ilgili sorunlar verdi. Umarım şimdi sorunu çözdüler. Drupal Packager deposu için kullanılacak komutlar şunlardır.

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

Zaten https: //packagist.drupal-composer.org'u kullanıyorsanız ve resmi Packagist sitesi ile değiştirmek composer config repositories.0 composer https://packages.drupal.org/8istiyorsanız, başka depolarınız yoksa çalışan ilk komutu ile değiştirmelisiniz . Packages.drupal.org'u kullanma .

Packagist.drupal-composer.org'un Ocak 2017'de (veya Drupal.org resmi Paket Deposu hazır olduğunda) kullanımdan kaldırılması planlandığına da dikkat edin .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.