Несколько раз измененное решение с использованием / proc / uptime
и dc
/ bc
/ awk
в значительной степени благодаря вводу agc :
#!/bin/sh
read -r before _ < /proc/uptime
sleep 2s # do something...
read -r after _ < /proc/uptime
duration=$(dc -e "${after} ${before} - n")
# Alternative using bc:
# duration=$(echo "${after} - ${before}" | bc)
# Alternative using awk:
# duration=$(echo "${after} ${before}" | awk '{print $1 - $2}')
echo "It took $duration seconds."
Очевидно, предполагается, что / proc / uptime
существует и имеет определенную форму.
Я должен поправить меня. В / var / cache / apt / archives
dpkg-scanpackages -m ./ / dev / null | gzip> Packages.gz
Параметр -m означает -m, --multiversion Включить в вывод все найденные пакеты .
Я не уверен, работает ли это у вас таким же образом. cat /path/to/rollback.txt | xargs apt-get install --reinstall
в системе с полной учетной записью root.
С помощью sudo cat /path/to/rollback.txt | xargs sudo apt-get install
Возможно, вам нужна опция -y для apt, я не могу вспомнить. Но с параметром -y apt-get установится один раз без каких-либо вопросов.
Этот ответ здесь не может работать.
Я бы сделал это с помощью aptoncd. С помощью этой программы вы можете создать ISO-образ, который можно использовать с apt-cdrom, чтобы вы могли использовать его в качестве источников.
временно создать запись в / etc / fstab / dev / sr0 / media / cdrom0 udf, iso9660 user, noauto 0 0
и mkdir / media / cdrom
Создать iso. udisksctl loop-setup -f / path / to / aptoncd-iso
как пользователь, будьте внимательны к тому, какое устройство петли сопоставлено ISO.
Как root или sudo mount / dev / loop? / media / cdrom
Затем apt-cdrom -m add
и apt update
, а затем повторите попытку cat /path/to/rollback.txt | xargs apt-get install --reinstall
Я знаю, что это долгий путь. Затем вы добиваетесь своей цели, а затем прокомментируете элемент в / etc / fstab out. Это важно, и новая запись в sources.list тоже