Найдите любую строку, которая не начинается с символа пробела (, используя ^
в классе символов для отрицания ). Для любого совпадения замените начало строки текстом «компонент».
/^
поиск с начала строки
[^.. ]
это класс символов, ^
отрицает содержимое класса.
[:space:]+
класс символов — пробел или символ табуляции
[^[:space:]]+
, но класс инвертирован, поэтому ищите с начала строки хотя бы один символ пробела, отличный от -. (+
означает по крайней мере одно появление символа пробела, отличного от -).
Если в регулярном выражении /.../
найдено совпадение, выполните следующую замену -в начале строки (^ означает начало строки ), добавьте текст "component...".
sed -E '/^[^[:space:]]+/ s/^/component $c set_parameter/' a.cfg
Я написал аналогичный ответ здесь
Для этого сначала удалите все строки с focal-proposed
из /etc/apt/sources.list
и /etc/apt/sources.list.d/*
.
Во-вторых, мы собираемся сообщить apt, чтобы разрешить понижение рейтинга. Это означает закрепление focal
, focal-updates
и focal-security
с приоритетом выше 1000. Создайте /etc/apt/preferences.d/focal
с этим содержимым:
Package: *
Pin: release n=focal
Pin-Priority: 1001
Package: *
Pin: release n=focal-updates
Pin-Priority: 1002
Package: *
Pin: release n=focal-security
Pin-Priority: 1003
Если вы не используете focal-updates
или focal-security
, пропустите эти разделы.
В-третьих, запустите следующее:
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt --fix-broken install
sudo apt autoremove
и продолжайте переключаться между этими командами, пока все не станет стабильным.
Наконец, удалите /etc/apt/preferences.d/focal
.
Кроме того, вы можете просто удалить focal-proposed
. Эти пакеты в конечном итоге перейдут на focal-updates
, когда они пройдут проверку, и вы снова будете синхронизированы.
С вашей маленькой дельтой --fix-broken install
и autoremove
, вероятно, не понадобятся, но apt
сообщит вам, когда вы прочитаете вывод предыдущих команд.
Всем, кто натолкнется на этот пост:Понижение версии не поддерживается . Любое понижение значительного размера, скорее всего, потерпит неудачу. Это довольно тривиальный случай, но переход от focal
к bionic
, вероятно, будет катастрофой и оставит вашу систему сломанной.
Немного короче.
cat /etc/apt/preferences.d/focal.pref
Package: *
Pin: release n=focal
Pin-Priority: 1001
Запись присваивает высокий приоритет всем версиям пакетов, принадлежащим любому дистрибутиву, чье кодовое имя «focal».
Примечание работает только тогда, когда предложенное фокусное -больше не активно.