私は自分自身の内部リポジトリを作成してそれを提供し、createrepo
希望的にJavaリポジトリを提供します。
JREおよびJDKパッケージの自動ダウンロードスタックオーバーフローで説明されているダウンロードされた時点のタイムスタンプを含むファイルが残っていました。ファイル生成時間は、ダウンロードスクリプトが実行される時間に設定されます。
さらなる処理のために、タイムスタンプをRPMパッケージのビルド時間に設定したいと思います(...、、などを介してクエリできるようls -al
にll
)--full-time
。
ファイル生成時間(RPM)をダウンロード時間からビルド時間に自動的に変更するには?
答え1
いくつかの研究の最後に、RPMでビルド時間を照会できることがわかりましたrpm -qip
。
BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date : " | sed -e 's/Build Date : //g')
echo ${BUILDTIME}
このdate
コマンドは、指定された日付と時刻の文字列の形式を再指定できます。
TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
echo ${TIMESTAMP}
後でコマンドと一緒に使用できますtouch
。
touch -m -a -t ${TIMESTAMP} ${FILENAME}
特定のディレクトリ内のすべてのファイルを繰り返すことで、含まれるすべてのパッケージのすべての作成時間を一覧表示して自動的に変更できます。
#!/bin/bash
for FILENAME in *.rpm; do
echo ${FILENAME}
BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date : " | sed -e 's/Build Date : //g')
echo ${BUILDTIME}
TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
echo ${TIMESTAMP}
touch -m -a -t ${TIMESTAMP} ${FILENAME}
done