Есть ли способ составить список пакетов Arch Linux по дате первоначальной установки?

Кажется, открыто -BSD netcat не поддерживает команды -eили --exec, которые помогают нам выполнить файл после установления соединения. Поскольку это может привести к тому, что удаленная машина запустит потенциально опасную команду для подключенной машины, эти команды считаются опасными.
В качестве обходного пути я просто удалил Open -BSD netcat и установил традиционный сервер -netcat, следуя решению на сайтеhttps://stackoverflow.com/questions/10065993/how-to-switch-to-netcat-traditional-in-ubuntu. Это дало мне доступ к команде exec -. Команда, которую я запускаю на сервере: :nc -l -p порт -номер -e Файл -Сценарий -до -выполнить

1
12.03.2021, 04:54
1 ответ

Один из простых способов составить список всех пакетов по дате установки — использовать журнал.:

awk '/\[ALPM\] installed/ { print $(NF-1) }' /var/log/pacman.log

Журнал — единственный способ получить эту информацию, если вы считаете, что «дата установки пакета» не зависит от версии пакета.

Это еще один способ, которым действительно считает, что пакет привязан к версии пакета --, если пакет обновлен, определенная дата установки изменится.

export LC_ALL=C
while IFS= read -r pkg; do
    printf '%s %s\n' \
    "$(date -d "$(pacman -Qi "$pkg" | sed -n '/^Install Date/s/.* : //p')" +%s)" \
    "$pkg"
done < <(pacman -Qq) | sort -nk1

(Это можно сделать быстрее, используя libalpmнапрямую или выполняя один pacman -Qiи итерируя каждый пакет с помощью awk, но код будет более сложным.)

3
18.03.2021, 22:25

Теги

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