Как очистить и обновить пакеты PPA с прекращенной версией Ubuntu

Мне удалось решить свою проблему, просто присвоив конкретную строку и столбец в качестве переменной и объединив их с помощью echo - просто, когда знаешь ответ!

#!/bin/bash

cd FREQ/HF
rm Hessian.log


for i  in *.out
do
grep -H -A16 "Force Constants (Second Derivatives of the Energy)" $i | tail -n +1 >> Hessian.tmp

x=`awk ' NR == 2 {printf "     "" %10s %10s %10s %10s %10s \n", $2,$3,$4,$5,$6}' Hessian.tmp`
y=`awk ' NR == 12 {printf "%10s %10s %10s %10s \n", $2,$3,$4,$5}' Hessian.tmp`
a=`awk ' NR == 8 { printf "%5s %10s %10s %10s %10s %10s\n", $2,$3,$4,$5,$6,$7} ' Hessian.tmp`
b=`awk ' NR == 9 { printf "%5s %10s %10s %10s %10s %10s\n", $2,$3,$4,$5,$6,$7} ' Hessian.tmp`
c=`awk ' NR == 10 { printf "%5s %10s %10s %10s %10s %10s\n", $2,$3,$4,$5,$6,$7} ' Hessian.tmp`
d=`awk ' NR == 11 { printf "%5s %10s %10s %10s %10s %10s\n", $2, $3,$4,$5,$6,$7} ' Hessian.tmp`
e=`awk ' NR == 13 { printf "%10s", $3} ' Hessian.tmp`
f=`awk ' NR == 14 { printf "%10s %10s", $3, $4} ' Hessian.tmp`
g=`awk ' NR == 15 { printf "%10s %10s %10s", $3, $4,$5} ' Hessian.tmp`
h=`awk ' NR == 16 { printf "%10s %10s %10s %10s", $3, $4, $5,$6} ' Hessian.tmp`

echo "$x $y" >> Hessian.log
awk ' 
NR == 3, NR == 7 {printf "%5s %10s %10s %10s %10s %10s\n", $2,$3,$4,$5,$6,$7} ' Hessian.tmp >> Hessian.log
echo "$a $e" >> Hessian.log
echo "$b $f" >> Hessian.log
echo "$c $g" >> Hessian.log
echo "$d $h" >> Hessian.log
rm Hessian.tmp
echo "" >> Hessian.log
done
2
10.08.2016, 23:06
1 ответ

В конце концов я пошел полностью ручным способом.

Сначала я проверил, какие пакеты можно удалить с помощью apt-get remove --purge --dry-run имя_пакета без изменения каких-либо зависимостей. Затем я проверял, на какую именно версию я хочу перейти, с помощью политики apt-cache policy имя_пакета . Затем я бы приступил к установке последней доступной версии каждого из этих пакетов.

Этот метод работал с

* xserver-xorg-video-ati
xserver-xorg-video-intel
xserver-xorg-video-nouveau
xserver-xorg-video-radeon
xserver-xorg-video-glamoregl

xserver-xorg-video-ati зависит от xserver-xorg-video-glamoregl , который зависит от libglamor0 , поэтому его нельзя переустановить, если вы не выполните следующие действия:

Затем я перешел на более раннюю версию с помощью apt-get install --reinstall package_name = version , где версия - это желаемая версия который появляется в политике apt-cache . Я сделал это с пакетами, которые можно было переустановить, не затрагивая зависимости и группируя пакеты, которые использовали одну и ту же версию для отдельных команд. Что сработало:

linux-firmware
libglamor0
mesa-common-dev
mesa-utils
libva-x11-1
libva1
libvdpau-dev
libvdpau1

Удаление пакетов mesa вместо их переустановки повлияет на множество зависимостей. На этом шаге я мог снова установить libglamor0 , затем xserver-xorg-video-glamoregl и, наконец, xserver-xorg-video-ati .

После переустановки libva , пакеты с меткой «rc», связанные с libva , остались. Эта отметка означает «удалено, но файлы конфигурации остались», и я безопасно удалил каждый из них с помощью apt-get remove --purge package_name .

Я перезапустил машину в этот момент, чтобы посмотреть, запустится ли она снова, к счастью, это произошло. В этот момент у меня была некоторая уверенность, поскольку все эти пакеты зависели друг от друга или ни от кого.

Тогда ... ад зависимости.

Я использовал dpkg -i --force-depends list-of-packages для понижения версии пакетов, не затрагивая их зависимости, как указано в: Как я могу понизить версию пакетов, не удаляя их зависимые?

Я загружал и переустанавливал пакеты deb-пакетов с одной и той же версией. Проверено, есть ли у каждого из этих пакетов кандидаты на пакеты с политикой apt-cache , и они загружены в Google с указанной там версией и архитектурой (amd64 / i386). Я выполнял пробные прогоны перед фиксацией каждой команды dpkg , заботясь обо всех предупреждениях, которые могут возникнуть из-за конфликта зависимостей. Конфликтов не было.

Сначала я использовал пакет libdrm2 .

libdrm2_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm2_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-amdgpu1_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-amdgpu1_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-dev_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-intel1_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-intel1_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-nouveau2_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-nouveau2_2.4.67-1ubuntu0.14.04.1_i386.deb
libdrm-radeon1_2.4.67-1ubuntu0.14.04.1_amd64.deb
libdrm-radeon1_2.4.67-1ubuntu0.14.04.1_i386.deb

Затем mesa (на данный момент совершенно необходимо, поскольку apt-get начал ныть, что libdrm нарушила зависимости с библиотеками mesa)

libegl1-mesa_10.1.3-0ubuntu0.6_amd64.deb
libegl1-mesa-drivers_10.1.3-0ubuntu0.6_amd64.deb
libgbm1_10.1.3-0ubuntu0.6_amd64.deb
libgl1-mesa-dri_10.1.3-0ubuntu0.6_amd64.deb
libgl1-mesa-dri_10.1.3-0ubuntu0.6_i386.deb
libgl1-mesa-glx_10.1.3-0ubuntu0.6_amd64.deb
libgl1-mesa-glx_10.1.3-0ubuntu0.6_i386.deb
libglapi-mesa_10.1.3-0ubuntu0.6_amd64.deb
libglapi-mesa_10.1.3-0ubuntu0.6_i386.deb
libgles2-mesa_10.1.3-0ubuntu0.6_amd64.deb
libosmesa6_10.1.3-0ubuntu0.6_amd64.deb
libosmesa6_10.1.3-0ubuntu0.6_i386.deb
libwayland-egl1-mesa_10.1.3-0ubuntu0.6_amd64.deb
libxatracker2_10.1.3-0ubuntu0.6_amd64.deb    

И, наконец, libvorbis пакеты:

libvorbis0a_1.3.2-1.3ubuntu1_amd64.deb
libvorbis0a_1.3.2-1.3ubuntu1_i386.deb
libvorbis-dev_1.3.2-1.3ubuntu1_amd64.deb
libvorbisenc2_1.3.2-1.3ubuntu1_amd64.deb
libvorbisenc2_1.3.2-1.3ubuntu1_i386.deb
libvorbisfile3_1.3.2-1.3ubuntu1_amd64.deb
libvorbisfile3_1.3.2-1.3ubuntu1_i386.deb

На этом этапе libllvm стала ненужной зависимостью, которую можно было удалить с помощью apt-get autoremove .Пакеты с пометкой "rc", которые я удалил с помощью apt-get remove --purge , остались без каких-либо проблем.

0
27.01.2020, 22:45

Теги

Похожие вопросы