Vagrant設定を使用してダウンロードせずにパッケージをインストールする方法は?

Vagrant設定を使用してダウンロードせずにパッケージをインストールする方法は?

私はさまざまな目的でVagrantボックスを使用していますが、ほとんどの場合ダウンロード可能な既製のボックスだけで十分です。しかし、時には、単回使用ではなく、日常的な活動のためにボックスに1つまたはいくつかの追加パッケージをインストールする必要があります。

たとえば、MacにVagrantボックスがあり(MacホストのLinuxゲスト)、主に組み込みのLinuxドキュメント(manページ、infoページなど)に簡単にアクセスできるようにしたいと思います。しかし、私が使用しているボックスには、man最初にインストールしたときにインストールしたパッケージはありませんvagrant up

パッケージを手動でインストールすると、次のパッケージまでしか持続しませんvagrant destroy。これを使用すると、vagrant haltシステムにいくつかのバグが発生し、vagrant最初にVirtual Boxを使用する目的が失われます。

わかりました一般的な答えは、単一のコマンドを使用するスクリプトと同じくらい簡単な放浪構成ですsudo yum install man。 (実際には正確にどうすればいいのかわかりません。)しかし、vagrant boxを起動するたびに、manパッケージとすべての依存関係をダウンロードするよりも、これらのパッケージをダウンロードすることをお勧めします。一度、ホストシステムに保存し、毎回仮想マシンにロードしますvagrant up

必要なパッケージをインポートし、パッケージファイルをホストにsudo yum install man --downloadonly入れるためにゲストでこれを実行しました。sudo cp -r /var/cache/yum/x86_64/6/base/packages/ /vagrant/

だから私の質問は実際には2つです。

  1. sudo yum install man(a)スクリプト(Vagrantfileと同じディレクトリに保存されている)を呼び出すか(b)可能であれば、Vagrantfileに単一のコマンド(たとえば)を挿入するための放浪設定構文は何ですか?

  2. yumローカルディレクトリからパッケージをインストールするために必要なオプションフラグを提供する方法(/vagrantそしてオンラインストアの代わりに同じローカルディレクトリに必要な依存関係をインストールしますか?

ベストアンサー1

たとえば、MacにVagrantボックスがあります(MacホストのLinuxゲスト)。

これがどのディストリビューションかを知ることは興味深いでしょう...あなたがそれを使用しようとしているのを見れば、yumそれがRH / CentOS / ..ものだと思いますか?

私は主に組み込みのLinuxドキュメント(manページ、情報ページなど)に簡単にアクセスしたいと思います。しかし、私が最初にさまよったときに私が使っていたボックスにはmanパッケージがインストールされていませんでした。

manこれがデフォルトでインストールされているディストリビューションを知りません。

私があなたなら、ATLASの公式ボックスの1つを使用します。 Debian が思い浮かぶでしょう:https://vagrantcloud.com/debian/

質問1に答えてください

これをvagrantfileに追加します。

$script = <<SCRIPT
echo I am provisioning...
date > /etc/vagrant_provisioned_at
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script
end

からインポートした例 http://docs.vagrantup.com/v2/provisioning/shell.html#inline-scripts

これにより、上部のスクリプトが実行され生成されます。/etc/vagrant_provisioned_at

問題をさらに調整するには:

$script = <<SCRIPT
yum install man
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script
end

設定スクリプトはUID0として実行されるため、必要ありませんsudo

質問2に答えてください。

私はDebianユーザーなので、RedHatは文盲です;-)

rpm -hiv <filename>IMHOは(i= installation、h= hashtag、= verbose)ですv

関連マンページ

おすすめ記事