2017-10-16 70 views
0

這並不能很好的工作,爲的sed不廚師客戶端運行時確認爲查詢文件名,我不知道爲什麼..仍然存在。如何使用URI紅寶石matchine PLATFORM_VERSION和機器(x86_64的

def vbox_file shell_out("curl -sS http://download.virtualbox.org/virtualbox/5.1.26 | grep -i virtualbox | grep -i el#{platform_version} | grep -i `uname -m` | sed 's/^.*>\([^<]*\)<.*$/\1/'").run_command.stdout end

回答

0

非答案,不要在shell代碼中執行此操作。使用紅寶石:

def vbox_file 
    Chef::HTTP::Simple.new('http://download.virtualbox.org/').get('/virtualbox/5.1.26')[/href="(.*?el#{node['platform_version'][0]}.*?#{node['kernel']['machine']}.*?)", 1] 
end 

或類似的東西,根據需要調整正則表達式。

0

如果只是失敗,因爲它無法找到SED;然後,你可能只需要包括sed的系統上的完整路徑

在我的系統中,它位於「/斌/ sed的」 ,但是你可以運行命令「which sed」來找出你的系統在哪裏。