問題タブ [software-packaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
11794 参照

bash - RPMスペックファイルのスクリプトでバージョンを定義する

rpmbuild を使用して rhel7 でビルドする RPM Spec ファイルがあり、スクリプトを使用してバージョンを定義したいと考えています。

私はここでhttp://www.techrepublic.com/article/rpmproc-spec-file/を読んで、これを行うことができます:

ここでRPM スペック ファイル -スクリプトで定義できるスペック ファイル変数を動的に入力することは可能ですか。

だから私はスペックファイルでこれをやろうとしました:

しかし、私は

これまでにテストしたこと:

これらはうまく機能するので、何が原因で失敗するのかわかりません。スペックファイルのdefineタグで同じことを呼び出すと、失敗する原因となる可能性のあるアイデアはありますか?

アップデート

ファイル名を実際の値に置き換えてみたのでこんな感じ

それは端末で呼び出されたときに機能しますが、

しかし、私はまだ取得します

更新 2

次に、別のより複雑なコマンドをテストしましたecho "12"

これでもOK!バージョンをコミット ハッシュの最初の 7 桁にします。

アップデート 3

謎は続きます。sedコマンドが原因かどうかを確認するテストを行いましたが、次のコマンドはバージョンとして1.2を提供します

このコマンドが機能するが、最初のコマンドが機能しない場合は、最初のコマンドで、%(cmd) ではなくターミナルで直接呼び出された場合にのみ機能する何かを使用する必要があります。近くなってる!

更新 4

わかりましたので、それが何であるかを分離したようです。好奇心旺盛で、rpmbuild が気に入らない構文-nまたは構文である可能性があるようです。s| | \1 |pオリジナルのよりシンプルなバージョンを作りました。見てみな:

残念ながら、問題を特定して理解することはもうできないと思います。2 番目のコマンドのスタイルで sed を使用しても問題はありませんが、最初のコマンドが機能しない理由については非常に興味深いものです。

更新 5

仕様ファイルと rpmbuild を使用して %() 内のスクリプトを操作する場合、ここに深刻な問題があることを発見しました。何が起こるかを見るためだけに awk を使ってみましたが、それも壊れました! これは、陰謀を発見するなど、私が最初に考えたよりもはるかに深くなります。

アップデート 6

皆さんにとって良いニュースと悪いニュースです。rpm がバックラウンドで独自の作業を行っているようで、何をしているのかを示していないことがわかりました。最終的に、rpm を介して呼び出されたときに異なる値を与えるコマンドを見つけました。

だから今、私は調整を行い、これを呼び出しました:

これを見ると、rpm からの最初の sed コマンドの結果の解析が舞台裏で行われている可能性があると思います。思い通りのrpmを手に入れましょう!

最終更新

rpm で休戦が成立しました。代わりに次のコマンドを使用します。

これは最初のコマンドと同じことを行い、バージョン番号を正しく設定する specfile 内で動作します。最初のコマンドが実行されない理由について誰かが推測できる場合は、それを読んでワクワクします。平和!

0 投票する
1 に答える
1143 参照

java - maven を使用して .rar を公開するにはどうすればよいですか?

.rar としてパッケージ化したい非常に単純なプロジェクトがあります。今、私は maven-rar-plugin を使用していますが、これはローカルで完全に機能します。パッケージ化すると、自分の .rar が得られます。これが欲しいものです。ただし、次の<distributionManagement>ようなセクションがあります。

次に を実行するdeploy -DperformRelease='true'と、.jar が nexus に公開されます。次に、このプロジェクトを依存関係として別のプロジェクトに含めると、次のようになります。

mynexus にアクセスしてダウンロードしようとしますが、見つかりません。nexus を参照すると、プロジェクトはリリース ディレクトリにありますが、そこには .jar があり、.rar がないと言って maven の依存関係が失敗します

0 投票する
2 に答える
23952 参照

macos - Apple macOS 更新パッケージの「ペイロード」ファイルからコンテンツを抽出する方法は?

macOSUpd10.12.1.pkg/tmp/macosupd ディレクトリに次のコマンドを使用して、macOS sierra 更新パッケージを抽出しています。

次のパッケージがメタパッケージ内にバンドルされていることがわかります。

ペイロード ファイルの内容を抽出できません。たとえば、macOSUpd10.12.1.pkg のペイロードを抽出しようとすると、次のエラー メッセージが表示されます。

タール付き:

xar を使用:

ペイロード ファイルに対して file コマンドを実行すると、次のようなメッセージが表示されます。

xxdcommandを使用して Payload ファイルの最初のビットを見ると、ファイルの種類が次のようになっていることがわかりますpbzx

Payloadファイルの内容を抽出する方法を提案してください。この外部リンクで提案されている方法を含め、 link1およびlink2で提案されているすべての方法を試しましたが、 まだ成功していません。Mavericks より前の Apple アップデートは、純粋な xar および tar パッケージだったようです。Mavericks 以降では、apple はファイル形式を tar から pbzx(lzma) に変更しました。

Payload自動化セットアップで使用する必要があるため、ファイルの内容を抽出する簡単なコマンド ラインの方法を提案してください。