私は問題で立ち往生しています。既存のプロジェクトをRPMにパッケージ化しています。それはうまく構築されますが、私が実行すると
Sudo yum localinstal --nogpgcheck <path to rpm>
次のエラーメッセージが表示されます。
Error: unpacking of archive failed on file <path to symlink>;5656d545: cpio: symlink
RPMはプロジェクトをディレクトリに抽出し、ln -sfn <app name and version>/ latest
を実行して、既存のシンボリックリンクlatest
を更新してプロジェクトを指すようにします。
Googleはこの問題についてほとんど何も譲らないので、私はこれらの問題についてより多くの経験を持つ誰かが手を貸してくれることを期待しています。
これは、ディスク上のファイル/ディレクトリがシンボリックリンクであるときに、rpmパッケージがディレクトリまたはファイルを所有している場合に発生します。またはその逆。これは長い間既知の問題です。
パッケージをインストール/アップグレードする前に、シンボリックリンクを手動で削除する必要があります。または、そのファイルを所有しないようにパッケージを変更します。
CentOS7.6とCrystalでも同様の問題が発生しました。
Downloading packages:
crystal-0.27.2-1.x86_64.rpm | 38 MB 00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : crystal-0.27.2-1.x86_64 1/1
Error unpacking rpm package crystal-0.27.2-1.x86_64
error: unpacking of archive failed on file /usr/share/crystal/src/lib_c/AMD64-unknown-openbsd: cpio: rename
Verifying : crystal-0.27.2-1.x86_64 1/1
Failed:
crystal.x86_64 0:0.27.2-1
Complete!
問題のパス全体を削除してしまいました:/usr/share/crystal/*
問題を解決しました。
私にとって、これは、存在しないディレクトリを指すシンボリックリンクがあったときに発生しました。たとえば、/opt/
から/data/
へのシンボリックリンクがありましたが、ドライブをマウントしたときにスペルミスがあったため、/data/
は存在しませんでした(/daat/
の場合)疑問に思う)。
シンボリックリンクが存在するはずの場合は、有効な場所を指していることを確認してください。