Я попробовал следующее, поскольку я применяю пользовательские патчи к некоторым пакетам:
Когда apt-get upgrade
показывает пакеты для обновления, я скачиваю исходники с помощью apt-get source, применяю свои патчи, пересобираю, устанавливаю (с помощью dpkg -i
). Затем устанавливается последняя версия. Но даже после обновления apt-get пакеты, которые я собрал вручную и установил с помощью dpkg, все еще отображаются в обновлениях и, следовательно, будут перезаписаны снова.
Как это исправить?
решение1
Это скорее временная заметка для тех, кто столкнулся с той же проблемой, пока кто-то более мудрый не поможет ее решить.
В моем скрипте сборки я указал
VERSION=$(grep -R "Version: " | grep .dsc | head -1 | awk '{print $2}')
NEW_NUMBER=$((${VERSION: -1} + 1))
NEW_VERSION=$(echo $VERSION | sed "s/ubuntu${VERSION: -1}/ubuntu$NEW_NUMBER/")
grep -rl $VERSION | xargs sed -i "s/$VERSION/$NEW_VERSION/g"
сразу послеapt-get source <package-name>
Это изменит последний номер версии пакета на следующую большую цифру (например, ubuntu2
станет ubuntu3
).
Этот обходной путь работает и здесь.
БЫСТРЫЙ СПОСОБ РАЗМНОЖЕНИЯ: Убедитесь, что пакет, с которым вы это пробуете, полностью обновлен. Теперь, когда вы это сделаете:
cd /tmp
apt-get -b source <package>
sudo dpkg -i *.deb
и проверьте, вы увидите, что apt-get показывает обновление для вашего пакета.