5

vagrant でスクリプト プロビジョナーを使用しています。私のボックスはubuntu 64bit Preciseです。私のスクリプトの関連行は次のようになります。

sudo bash -c 'echo "deb https://oss.oracle.com/debian/ unstable main non-free" >/etc/apt/sources.list.d/oracle.list'
wget -q https://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -

sudo apt-get update -qq

エラーコードは次のとおりです。

W: GPG error: https://oss.oracle.com unstable Release: The following signatures were invalid: KEYEXPIRED 1378511808 KEYEXPIRED 1378511808 KEYEXPIRED 1378511808
W: Failed to fetch https://oss.oracle.com/debian/dists/unstable/main/binary-amd64/Packages  The requested URL returned error: 404

W: Failed to fetch https://oss.oracle.com/debian/dists/unstable/non-free/binary-amd64/Packages  The requested URL returned error: 404

E: Some index files failed to download. They have been ignored, or old ones used instead.
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

問題は、リポジトリのキーの有効期限が切れており、64 ビット アーキテクチャ (32 ビットのみ) 用ではないことを知っているにもかかわらずです。それでも、そこから関連するパッケージをインストールしたいと思います (これは、: を使用して可能です<package_name>:i386)。ただし、更新中に非終了ステータス vagrant が停止し、スクリプトを続行しなくなります。

apt-getvagrant を幸せにしてスクリプトの実行を継続する方法はありますか?

4

2 に答える 2

16

次のコマンドを使用して、エラー ステータスを強制的にゼロ; trueにすることができます。

sudo sh -c "apt-get update -qq ; true"
于 2013-11-12T08:50:05.053 に答える
4

Igor の提案よりも少し単純なアプローチは、ブール値のステートメントにすることです。

apt-get update -qq || true

これにより、不要なサブシェルの呼び出しが回避されます。

于 2018-03-09T22:18:33.763 に答える