在我的 Ubuntu 14.04.2 上,what-source
回傳套件名稱的兩倍一些包,例如
~$ what-source openssl
openssl
openssl
或者
~$ what-source firefox
firefox
firefox
這是正常行為嗎?
手冊中的範例這裡僅返回一個(與我的機器相同:僅返回一個名稱):
~$ what-source sl
sl
到底是怎麼回事?
答案1
作為線上說明頁說,what-source
是一個簡單的包裝apt-cache show | grep
。實際代碼是:
#!/bin/sh
# [....]
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
apt-cache show "$1" | grep "^Filename:" | sed -e "s:\(.*\)/\(.*\)/\(.*\)/\(.*\)/.*:\4:"
apt-cache show
將顯示儲存庫中可用軟體的每個版本的描述。例如:
$ apt-cache policy firefox
firefox:
Installed: 38.0+build3-0ubuntu0.14.04.1
Candidate: 38.0+build3-0ubuntu0.14.04.1
Version table:
*** 38.0+build3-0ubuntu0.14.04.1 0
500 http://mirror.cse.iitk.ac.in/ubuntu/ trusty-security/main amd64 Packages
500 http://mirror.cse.iitk.ac.in/ubuntu/ trusty-updates/main amd64 Packages
100 /var/lib/dpkg/status
28.0+build2-0ubuntu2 0
500 http://mirror.cse.iitk.ac.in/ubuntu/ trusty/main amd64 Packages
三個儲存庫中有兩個版本可用,並且apt-cache
將顯示這兩個版本的描述:
$ apt-cache show firefox | grep -i -e version -e filename
Version: 38.0+build3-0ubuntu0.14.04.1
Filename: pool/main/f/firefox/firefox_38.0+build3-0ubuntu0.14.04.1_amd64.deb
Version: 28.0+build2-0ubuntu2
Filename: pool/main/f/firefox/firefox_28.0+build2-0ubuntu2_amd64.deb
所以,是的,這種行為是完全正常的。