Не так давно корпорация Microsoft раструбила на весь мир, что любит Linux (конечно любит... кждую неделю иски в суд таскает), даже баннер соответствующий на азуре повесили. Но сейчас не об этом.
Начитавшись комментариев на Пикабу и наслушавшись коллегу в курилке я решил обновить свой консервативный Debian со Stable до Testing. В общем не буду вдаваться в подробности, а просто скажу, что систему почти полностью пришлось переставлять (слишком сильно я её запустил и кастомизировал).
После установки основного софта я принялся ставить всё то, что мне нужно в повседневной жизни, и первое, за что я взялся, это был так сильно "обожаемый" скайп. Хочу немного пояснить своё пренебрежительное отношение к скайпу на линуксе. Во-первых скайп для линукса стар как говно мамонта имеет довольно старую и не актуальную версию. Во-вторых - нет реализации 64-битной архитектуры, из-за чего приходится тянуть целую кучу библиотек для i386. Всё это не сильно то и радует, но как то я уже смирился. Но тут, при установке, я получаю сообщение о том, что скайп не может быть установлен, т.к. не разрешены некоторые зависимости. Начинаю гуглить и узнаю, что разработчики Debian выкинули из системы (и из репозитроиев) устаревшую библиотеку libssl_1.0.0. И я их полностью в этом поддерживаю. Но оказалось, что горячо любимые индусы/китайцы/арабы/или хер пойми кто там в этом майкрсофте работает прописали жёсткую зависимость скайпа от устаревшей библиотеки, а обновлять версию - не хотят. Продолжив поиск я нашёл решение проблемы, и представляю его вам.
Для начала нам понадобится скачать тот самый злополучный скайп и небольшой скрипт.
Вот скрипт изнутри:
#!/bin/bash
if [[ -z "$1" ]]; then
echo "Syntax: $0 debfile"
exit 1
fi
DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb
if [[ -e "$OUTPUT" ]]; then
echo "$OUTPUT exists."
rm -r "$TMPDIR"
exit 1
fi
dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN
if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
echo DEBIAN/control not found.
rm -r "$TMPDIR"
exit 1
fi
CONTROL="$TMPDIR"/DEBIAN/control
MOD=`stat -c "%y" "$CONTROL"`
vi "$CONTROL"
if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
echo Not modfied.
else
echo Building new deb...
dpkg -b "$TMPDIR" "$OUTPUT"
fi
rm -r "$TMPDIR"
Кладём всё это в одну папку, открываем терминал и приступаем к подготовке пакета.
Распакуем архив и выставим права.
gzip -d videbcontrol.gz
chmod 755
Теперь можно запускать скрипт
./videbcontrol skype-debian_4.3.0.37-1_i386.deb
После этого перед нами появится редактор vj, в котором нам нужно поправить версию библиотеки libssl на 1.0.2.
И тут нас ждёт сюрприз! Оказывается, что vi - это не просто редактор, как блокнот, и просто так вы не сможете отредактировать тут текст. Поэтому нам нужно выбрать нашу библиотеку, а точнее установить курсор на последний ноль в версии, нажать Del (это удалит символ), нажать i (это переведёт нас в режим редактирования), ввести 2, нажать Esc (для возврата в командный режим), и просто ввести на клавиатуре :wq (это запишет в файл наши изменения и выйдет из vi). после закрытия редактора скрипт продолжит работу. Дождёмся конца работы скрипта и получим в папке с исходный пакетоп скайпа модифицированный skype-debian_4.3.0.37-1_i386.modfied.deb. Теперь можно устанавливать:
dpkg -i skype-debian_4.3.0.37-1_i386.modfied.deb
Если будет ругаться на недостаток зависимостей - запускаем
apt-get install -f
Пользуемся на здоровье ;)