Первый ответ на этот вопрос использует то, что Вы предлагаете, и дескрипторы недостающие пакеты впоследствии. Среди ответов некоторые люди предполагают, что это - плохая идея. Обратите внимание также на это, если выбор добавляет a :i386
это может быть, потому что некоторый другой пакет явно требует пакета для этой архитектуры. Если Вы хотите проверить прежде, вот предложение.
В Вашей системе необходимо найти списки доступных пакетов на репозиторий в /var/lib/apt/lists
. Вы могли проверить список пакетов с a: i386 против этих списков, чтобы гарантировать, что они присутствуют и для i386 и для amd64 архитектуры. Следующий сценарий является примером того, что Вы могли сделать
#!/bin/bash
#iterate on installed packages with a :something in their names
for package in $(
dpkg --get-selections |
grep ":" | #comment to check all the selection
grep -v deinstall |
cut -f1 |
sed s/:.*// |
sort -u
)
do
#find all occurences in repository package lists
grep "Package: $package$" /var/lib/apt/lists/* 2>/dev/null |
#translation and sources are not usefull
grep -v Translation |
grep -v Sources |
#put the distribution as a prefix
sed 's/^\(.*\)_dists_\([^_]*\)\(.*\)/\2 \1\3/' |
#put the architecture difference in the repository file name as a prefix
sed 's/^\(.*\)-\(amd64\|i386\)_\(.*\)/\2 \1_\3/' |
#count consecutive identical lines ignoring the architecture prefix
uniq -c -f1 |
#print architecture distribution and package if some line is not duplicated
awk '$1!=2{print $2 " " $3 " " $5}'
done
На установке lubuntu это ничего не дает мне, и на debian один, пакеты libc6-i686, libwine-bin, libwine-alsa, libwine-gl
только для i386 архитектуры, например,
COLUMNS
устанавливается bash после получения SIGWINCH.
(см. раздел Shell Variables
в man bash
)). Она не установлена в вашем скрипте, потому что это не переменная окружения. Посмотрите на себя:
$ export COLUMNS=$COLUMNS
$ ./your-script.sh
Теперь это работает. Вам необходимо получить значение COLUMNS
в вашем скрипте. Вы можете использовать tput
, например:
$ tput cols
186
COLUMNS
не установлена каким-то образом в .bashrc
.
Просто получите колонки через tput cols
так:
dp_smaller_than=80
if [ $(tput cols) -lt $dp_smaller_than ]
then
PROMPT_COMMAND="degr_prompt"
else
PROMPT_COMMAND="full_prompt"
fi