Ошибка Кали Линукс – Файл имеет неожиданный размер (File has unexpected size).
Ниже следует коротенькое эссе на тему проблемы с обновами в Кали Линукс и не только. Так, в один прекрасный момент пользователь при попытке получить обновления командой из терминала типа
sudo apt-get update && sudo apt-get upgrade -y
может столкнуться с ошибкой типа Файл имеет неожиданный размер или File has unexpected size. Нередко случалось так, что ошибка появлялась ниоткуда и также неожиданно исчезала. Так что перво-наперво (1) лучше пока с обновлениями подождать – ошибка может лежать на стороне хранилища репозов. В качестве прародителя ошибки также была (2) замечена процедура обращения (или только попытки) обращения к репозиториям через защищённый HTTPS. Вместо, конечно, HTTP: на некоторых машинах файл /etc/apt/sources.list идёт с инвертированными “contrib” и “non-free”. Так что первым, что приходит на ум, это принудительно прописать в файл источников обновлений единственно верный (и официально рекомендуемый) адрес и почистить “карму”. Пусть указанная строчка будет единственной (после второй команды – чистки системы – будет перезагрузка, так что приготовьтесь):
echo "deb https://http.kali.org/kali kali-rolling main non-free contrib" > /etc/apt/sources.list
apt autoremove
reboot
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
Помимо прочего, (3) можно попробовать сменить зеркало с последующей перезагрузкой Кали, но если трафик блокируют и/или файрволл и DPI (Deep Packet Inspection), прокатит только описанный выше вариант. Кстати, если проблема возникает регулярно, а ваша Кали всё ещё говорит по-английски, обновите языковую локаль Кали. Так, после череды таких ошибок я просто русифицировал свою очередную Кали, и проблема пропала навсегда. Причиной тому, как мне кажется, послужил тот факт, что определённые файлы прямо во время копирования подвергаются модификации из-за несоответствия языковых локалей. Если обновиться невтерпёж, в качестве временной меры могу посоветовать обратиться к ближайшим зеркалам серверов. Для этого поступимся правилами и накидаем в уже упомянутый файл адресов репозиториев ещё несколько строк. Хотя бы пара сработает. Откроем из терминала
mousepad /etc/apt/sources.list
и добавим туда строчки
deb https://mirrors.ocf.berkeley.edu/kali/ kali-rolling main contrib non-free
deb-src https://mirrors.ocf.berkeley.edu/kali/ kali-rolling main contrib non-free
deb http://kali.mirror.garr.it/mirrors/kali/ kali-rolling main non-free contrib
deb-src http://kali.mirror.garr.it/mirrors/kali/ kali-rolling main non-free contrib
На манер, как это проделывалась ещё в статье Кали Линукс не хочет обновляться. Напомню, однако, что именно мешанина в файле репозов нередко вызывает как раз обратный эффект. Вобщем, отписывайтесь, как у кого что прошло.
Успехов.