Composer を使用している場合、インストールまたは更新後にメッセージが表示されることがあります。
X packages you are using are looking for funding.
Use the `composer fund` command to find out more!
npm ではこの回答と同様の、Composer でも解決策があるかどうか知りたいです。
資金が必要なプロジェクトに関するメッセージを非表示にする方法はありますか? Composer --help の出力をチェックしましたが、明らかなフラグは見つかりませんでした。
------------------------
これら 2 行をターゲットとする特定のフラグはありません。
いつでも --quiet を使用してすべての出力を削除し、完全にサイレントで実行できます。
何らかの理由でこれらの 2 行が特に気になるが、残りの行は失いたくない場合出力では、いつでも grep を介して stderr をパイプし、これらの行を除外できます。
composer update 2> >(grep -v "composer fund" | grep -v "looking for funding")
その結果:
上のスクリーンショットでは、資金調達への言及が著しく欠如していることに注目してください。
これを行う価値があるかどうかは、あなたにお任せします。
2
「結合」することができます。 -e:composer update 2> を使用して複数のパターンを指定することで、2 つの grep コマンドを 1 つにまとめます。 >(grep -v -e "作曲家基金" -e "資金を探しています").
– CDuv
2022 年 1 月 5 日 23:31
私にとっては、次のように動作します。composer update 2>&1 >/dev/null | grep -v -e "詳細を確認するには、「composer Fund」コマンドを使用してください!" -e "資金を探しています"
– シャカラン
2023 年 3 月 10 日 13:25
------------------------
スパム!あなたの端末で!さらに悪いことに、「善良な人々」が彼らを攻撃すると、やってみろ!
しかし、これはオープンソースなので、修正しましょう。
このためには、Composer がすでにインストールされている必要があります (Compo が必要です)このように Composer をコンパイルするには ser)。
jq も必要です。
全員で:
sudo apt install jq
cd "$(mktemp -d)"
ver=$(curl -s 'https://getcomposer.org/versions' | jq -r '.stable[0].version')
git clone https://github.com/composer/composer.git .
git checkout ${ver}
unset ver
sed -Ei 's/^(\s+if\s?\()$fundingCount(\) \{)$/FALSE/g' ./src/Composer/Installer.php
composer install
composer compile
composer_location=$(which composer)
if [[ -f "${composer_location}" ]]; then
\cp -f composer.phar "${composer_location}"
chmod u+x "${composer_location}"
fi
unset composer_location
別途:
jq をインストールします:
sudo apt install jq
一時フォルダーを作成し、ディレクトリをそこに変更します。
cd "$(mktemp -d)"
最新の安定した Composer のバージョン番号を取得し、ver 変数に保存します。
ver=$(curl -s 'https://getcomposer.org/versions' | jq -r '.stable[0].version')
この一時ディレクトリに Composer git リポジトリのクローンを作成し、Composer の最新の安定バージョンでコードをチェックアウトします。
git clone https://github.com/composer/composer.git .
git checkout ${ver}
後はクリーンアップして、再度使用する予定のない ver 変数の設定を解除します。
unset ver
src/Composer/Installer.php の if ($fundingCount) { を if (FALSE) { に置き換えます。
sed -Ei 's/^(\s+if\s?\()$fundingCount(\) \{)$/FALSE/g' ./src/Composer/Installer.php
Composer をコンパイルするための依存関係を取得します。ただし、Composer を使用します (そのため、最初に Composer をインストールする必要があります)。つまり、このマニュアルを実行できますそうだね、でも一体、なぜだろう。
composer install
この変更された現在のコードベースを使用して、新しいcomposer.pharを作成します。
composer compile
Composer バイナリの現在の場所を変数に保存します。
composer_location=$(which composer)
composer コマンドにエイリアスを付けた場合に備えて、その場合はファイル名の場所が保存されません。ファイルかどうかを確認してから、新しいファイルに置き換えて、次のコマンドで新しいファイルを実行可能にします。ユーザーであるあなた。
if [[ -f "${composer_location}" ]]; then
\cp -f composer.phar "${composer_location}"
chmod u+x "${composer_location}"
fi
CP の前のバックスラッシュもエイリアス バスターです。多くの場合、人々は cp を cp -i にエイリアスしますが、私たちはこれが今すぐ機能することだけを望んでいます。
最後に、composer_location 変数の設定を解除して、適切な状態にします。
その sed 行の正規表現に従っている場合は問題ありませんが、そうでない場合は、その行をスキップして変更を手動で適用して、何が起こっているかを把握することをお勧めします。自分のデバイス、vim src/Composer/Installer.php の場合、 if ($fundingCount) { を if (FALSE) { に置き換えます。
もちろん、これは、composer の署名されていないコピーを実行していることを意味します (変更は独自のものです)。しかし、彼らはすでにあなたの信頼を裏切ったので、その「信頼」を誰が気にするでしょうか。チェーン。
また、composer の自己更新を実行すると、Composer がパッチの適用されていないものに再び置き換えられるため、これらの手順を再度実行する必要があります。彼らはあなたの信頼を裏切ったので (またそうです)、とにかくこのように手動で更新するのが最善です (これらの手順をもう一度実行するだけで、あなたも更新できます)。私は、会社のすべての開発者のデスクトップ用に Ansible にそれを入れました。
3
1
「背任」として資金提供を求めることは考えません。
– mbomb007
2021 年 12 月 16 日 20:43
1
たとえ善良な人からのものであっても、一方的なリクエストはスパムとみなされます。私の端末ではそれは信頼違反であると考えられます。 Canonical や Microsoft が自社の OS に商用オファーをスパム送信しているのと同じです。
– ライアンバーガー
2021 年 12 月 17 日 12:16
1
マイクロソフトは多額の資金を持っています。オープンソースのメンテナーはボランティアとして参加しています。
– mbomb007
2021 年 12 月 22 日 15:04