Я хочу перечислить все файлы из источника, скажем extras.ubuntu.com из командной строки. Какова команда для этого?
dpkg --list
перечисляет все файлы или только имя файла.
Найдите соответствующий файл в /var/lib/apt/lists/
, заканчивающийся в Packages
, и выполните эту команду:
# example for deb http://security.ubuntu.com/ubuntu natty-security multiverse
awk '$1 == "Package:" { print $2 }' /var/lib/apt/lists/security*multiverse*Packages
Кстати, мой extras.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages
пуст.
РЕДАКТИРОВАТЬ
Вы также можете проанализировать apt-cache
вывод. Этот скрипт перечисляет все пакеты с информацией о сервере и репо:
#!/bin/bash
apt-cache policy $(dpkg -l | awk 'NR >= 6 { print $2 }') |
awk '/^[^ ]/ { split($1, a, ":"); pkg = a[1] }
nextline == 1 { nextline = 0; printf("%-40s %-50s %s\n", pkg, $2, $3) }
/\*\*\*/ { nextline = 1 }'
Удобно сортируя вывод, вы можете получить информацию, которую вы ищете.
Я сделал ужасный сценарий для этого:
#!/bin/bash
clear
##array aufbauen
declare -a repoList=()
for i in $(ls /var/lib/apt/lists/ | grep _Packages)
do
#echo $i
repoList=("${repoList[@]}" "$i")
done
repoAnzahl=${#repoList[@]}
echo "Anzahl der Repos: " $repoAnzahl
for ((i=0;$i<$repoAnzahl;i++))
do
if [[ "${repoList[$i]}" =~ "archive.ubuntu" ]]
then
rname=${repoList[$i]##*archive.ubuntu}
echo "$i RepoName: " "${rname%%_binary*}"
elif [[ "${repoList[$i]}" =~ "ubuntu" ]]
then
echo "$i RepoName: " "${repoList[$i]%%_ubuntu*}"
else
echo "$i RepoName: " "${repoList[$i]%%_dist*}"
fi
done
read -p "Gib die RepoNummer ein: " repoNummer
packages=()
for i in $(cat /var/lib/apt/lists/${repoList[$repoNummer]} | grep Package)
do
if ! [[ "$i" =~ "Package" ]]
then
packages=("${packages[@]}" "$i")
fi
done
paketAnzahl=${#packages[@]}
echo "Anzahl der pakete: " $paketAnzahl
function listPackages () {
for ((i=0;$i<$paketAnzahl;i++))
do
echo ${packages[$i]}
done
}
if test $paketAnzahl -gt 20
then
listPackages | less
else
listPackages
fi
echo "Anzahl der Pakete: " $paketAnzahl
apt-cache policy '.*'
. Эти пакеты файл получен отhttp://extras.ubuntu.com/ubuntu/dists/natty/main/binary-amd64/
, теPackages.*
файлы, могут быть несжатыми с помощьюgunzip
илиbunzip2
. – Eric 20.05.2020, 01:13