0
我有一個腳本,寫在perl中,收集有關通過端口安裝的軟件包的信息。不幸的是,似乎沒有一種功能簡單的方法來確定端口的版本。當然,你可以使用這個:FreeBSD軟件包版本信息
pkg_version -v
這將顯示你所有的包,有關其狀態的符號(需要更新,成功港口等),它是版本。
由於這是一個腳本,我真的不希望這樣做:
my $blah = "pkg_version -v | grep -vE '(up-to-date|succeeds)'|awk '{print \$1}'";
# Then make a var and run it through with backticks.
這樣會給我所有的包的列表,讓我把它變成一個數組,然後做一些神奇的東西。我想要做的是這只是找出包的版本是什麼,而提供包的名稱。
同樣,我可以用管道,awk等來做到這一點,但我不想如果我能避免它。
請讓我知道你們可以拿出什麼,因爲我發現這是很難找到的信息。
P.S.下面是一些信息:
的FreeBSD版本:9.1 拱:64 Perl版本:5.14.2(AMD64技術的FreeBSD線程多)
如果有人可以添加端口的標籤,這會是很好,因爲它還不存在。
我假設你指的是利用目錄名來確定版本,對吧?例如,包「blah」有目錄「blah-1.1.1_3」 –
是的。它假設'pkg_ *'工具已經正確地完成了他們的內務管理,但是如果你允許他們錯誤的話,那麼你還有其他一些可能的問題。 – Borodin
是的,確實如此。這當然是野獸的本質。我當然需要盡我的責任,並寫一些奇特的理智檢查,以確保它不會失控。謝謝您的幫助。 :) –