web-dev-qa-db-ja.com

Composerは、「安定した安定性を持つパッケージが見つかりませんでした。」というエラーをスローします。

Composerでプロジェクトを公開しようとしました。プロジェクトはgithubにあり、packagist.orgを通じて公開されています。

しかし、composerでプロジェクトを作成しようとすると、次のエラーメッセージで失敗します。

「安定性が安定しているパッケージmadskullcreations/simplicityが見つかりませんでした。」

次のコマンドを使用します。

composer create-project madskullcreations/simplicity

Composer.jsonには以下が含まれます。

{
    "name": "madskullcreations/simplicity",
    "description": "Website made simple!",
    "homepage": "https://madskullcreations.com",
    "type": "project",
    "license": "GPL-3.0-or-later",
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.6",
        "cakephp/cakephp": "3.5.*"
    }
}

私のリポジトリには、テスト用のファイルが1つだけ含まれています。なにが問題ですか?依存関係、「require」ブロック全体を削除しようとしましたが、実際の変更はありません...

私の初心者ですが、パッケージの「安定性」をどこに定義するかさえわからず、githubやpackagistで何も見つけることができません。

これを始めるのを手伝ってください!


実用的なソリューション:

私は最終的にフライングの助けを借りてそれを動作させました、彼の答えをさらに下に見てください。 composer up'n upを機能させるのは少し複雑だと思うので、ここで機能させるために行った手順をここに入れます。

  1. Githubにリポジトリを作成します。
  2. 依存関係を含むcomposer.jsonを作成します。チェックインしてください。
  3. リリースそれ。どこかに「リリース」リンクがあり、それを使用してリリースに名前を付けます。

テスト中にpackagist.orgの手順をスキップするには、次の手順に従います。 (私がしたように)機能していないソリューションをpackagist.orgで公開するのは良いスタイルではありません。必要なすべての手順を10回以上繰り返すのはまったく面白くありません。

どこかにローカルフォルダーを作成し、そこに新しいcomposer.jsonファイルを作成します。

その中に次のようなものを入れてください:

{
  "require": {
    "madskullcreations/simplicity":"dev-master@dev"
  },
  "repositories": [
    {
       "type": "vcs",
       "url": "https://github.com/madskullcreations/simplicity" 
    }
  ]
}

新しいフォルダーで次のコマンドを実行します。

composer create-project

これでプロジェクトがダウンロードおよびインストールされます。

そして、composerによって提供されるエラーメッセージを読んで、それらを理解していることを確認してください。それらは有用です。私の頭痛の種は、PHP拡張機能(intl)の欠落であり、phpバージョン7.1を使用していると想定していました、それは実際にcomposer.jsonファイルで私の要件をリッスンし、v5.6を使用しました(iisにいくつかのphp-versionがインストールされていますが、私の頭がぼやけてそれを考慮していませんでした)。

6
Snorvarg

パッケージの安定性要件は、外部パッケージのminimum-stabilityではなく、your projectcomposer.jsoncomposer.json 設定に定義されています。

あなたの madskullcreations/simplicity パッケージには norelease が定義されていないので、そこにある唯一のブランチはdev-master "release"(it Packagistの package page の右側にあります。この「リリース」には「開発」安定性レベルがあります。

上記のため、minimum-stability: devを設定せずに、またはパッケージの安定性要件を指定せずに、このパッケージをプロジェクトに必要とする場合

"require": {
  "madskullcreations/simplicity":"dev-master@dev"
} 

(バージョン要件への@devに注意してください)Composer)の正しい動作は、互換性のあるリリースの欠如について文句を言うことです。

また、Packagistのような公開レジストリにテストパッケージを公開することは、一般的に悪い習慣です。代わりに、説明されているようにcomposer.jsonに直接リポジトリ指定を使用する必要があります ここ 。あなたの場合それは次のようになります:

"repositories": [
  {
     "type": "vcs",
     "url": "https://github.com/madskullcreations/simplicity" 
  }
]

直接リポジトリ参照を指定した後-オープンソースコミュニティと共有したくない場合を除いて、Packagistからテストパッケージを削除しても安全です。

6
Flying