Memerintahkan untuk menemukan paket sumber biner?


33

Saya tahu ada whichperintah, yang menggemakan nama lengkap biner (misalnya which sh). Namun, saya cukup yakin ada perintah yang menggemakan paket yang menyediakan biner tertentu. Apakah ada perintah seperti itu? Jika demikian, apakah itu? Saya ingin dapat menjalankan ini:

commandName ls

dan dapatkan

coreutils

sebagai contoh.

Jawaban:



10

Jika Anda ingin menemukan file dalam paket yang belum Anda instal, gunakan file apt

apt-get install -y apt-file
apt-file update

Kemudian, untuk menemukan sesuatu:

apt-file search /usr/bin/file

atau

apt-find search file

Di mana "file" adalah nama apa pun yang Anda cari.

Jika Anda tidak ingin melalui ini pada setiap sistem debian, Anda dapat menggunakan skrip ini:

#!/bin/bash
which apt-get >/dev/null || { echo apt-get not found >&2; exit 1; }
which apt-file >/dev/null || { apt-get install -y apt-file;  apt-file update; }
unset i; IFS=$'\x0a'; select i in $( apt-file search "/$@" ); do 
    test -n "$i" || break; apt-get install "${i%% *}"; done

Saya baru saja mengocoknya, tetapi tampaknya bekerja dengan baik.

Catatan: "dpkg -S" hanya menemukan hal-hal yang sudah Anda instal.


3
Menggunakan -yparameter berbahaya, itu bisa mengatakan ya untuk sejumlah hal. Dalam skrip mungkin baik-baik saja, tetapi perintah pertama harus benar-benar dibaca apt-get install apt-filetanpa -ykarena Anda tidak bisa tahu seperti apa sistem pengguna.
jmiserez
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.