Многие пакеты, от которых зависит Synaptic, не установлены на вашей системе. Для начала вам необходимо установить эти пакеты. Однако, установка Synaptic не поможет решить проблему с прокси. Сначала нужно решить эту проблему, потому что установка пакетов вручную - это боль (вот почему существуют пакетные менеджеры).
Убедитесь, что вы прочитали доступные ресурсы о том, как заставить APT работать с прокси, требующим аутентификации, начиная с Как настроить аутентификацию прокси для работы с Ubuntu Software Center? Если вы не можете заставить прокси работать, то:
Кроме того, вы пытаетесь установить пакет для неправильной версии Ubuntu. Synaptic 0.81.2 - это версия предстоящей Ubuntu 14.10. У вас есть libapt-pkg4.12
0.9.7.5, который является версией в Ubuntu 12.10. Вы не можете смешивать пакеты из разных версий Ubuntu (ну, вы можете попробовать, но в большинстве случаев вы столкнетесь с ошибками зависимостей, как эта).
Ubuntu 12.10 больше не поддерживается, и большинство зеркал больше не несут его. Вы всё ещё можете получить пакеты из old-releases.ubuntu.com в сжатом виде, но вы не получите больше никаких обновлений безопасности или других исправлений ошибок. Вам необходимо обновиться как можно скорее. Прямые обновления с 12.10 до 14.04 не поддерживаются; обычно вам нужно обновить версию по версии или с версии LTS до другой версии LTS, но есть исключение: вы можете пойти 12.10 → 13.10 → 14.04.
.
VALUE=083551726
awk -v CMPVALUE="$VALUE" '{linevalue=substr($0,0,9)+0; CMPVALUE=CMPVALUE+0;
if(linevalue > CMPVALUE) exit; lineno=FNR};
END {if (lineno>0) print lineno " " $0;
else print "0 ";}' file
0
VALUE=083551726555
awk -v CMPVALUE="$VALUE" '{linevalue=substr($0,0,9)+0; CMPVALUE=CMPVALUE+0;
if(linevalue > CMPVALUE) exit; lineno=FNR};
END {if (lineno>0) print lineno " " $0;
else print "0 ";}' file
3 093053087TIJKL
Рассмотрим эту bash
версию:
#! /bin/bash
exec 3<test.txt
COUNT=0
while read VALUE
do
if [[ -z $LAST_VAL ]]
then
IN_VAL="$LAST_VAL"
else
LINE="$(head <&3 -1)"
IN_VAL="$(cut -c1-9 <<<'$LINE')"
let COUNT=$COUNT+1
fi
while [[ $IN_VAL < $VALUE ]]
do
LINE="$(head <&3 -1)"
IN_VAL="$(cut -c1-9 <<<'$LINE')"
let COUNT=$COUNT+1
LAST_VAL="$IN_VAL"
[[ -z $IN_VAL ]] && break
done
echo $((COUNT - 1)) $LINE
[[ -z $IN_VAL ]] && break
done
head
(и некоторые другие инструменты, такие как grep
с --max-count
), в отличие от awk
, оставляет поток расположенным сразу после последнего прочитанного символа, так что вы можете продолжать использовать тот же поток для поиска в дальнейшем. Проблема заключается в том, что когда прочитанное значение не совпадает, необходимо сохранить его для следующей итерации (как я делал это в LAST_VAL
). Значения COUNT
и LINE
должны быть последними совпадающими номером и строкой. Таким образом, все это можно сделать за одно чтение файла.