Как отслеживать установленное программное обеспечение

Мне когда-то было нужно что-то подобное для нахождения файлов класса в наборе zip-файлов.Вот:

#!/bin/bash

function process() {
while read line; do
    if [[ "$line" =~ ^Archive:\s*(.*) ]] ; then
        ar="${BASH_REMATCH[1]}"
        #echo "$ar"
    else
        if [[ "$line" =~ \s*([^ ]*abc\.jpg)$ ]] ; then
            echo "${ar}: ${BASH_REMATCH[1]}"
        fi
    fi
done
}


find . -iname '*.zip' -exec unzip -l '{}' \; | process

Теперь только необходимо добавить одну строку, чтобы извлечь файлы и возможно переместить их. Я не уверен точно, что Вы хотите сделать, таким образом, я оставлю это Вам.

8
10.02.2012, 15:24
3 ответа

Существует простое правило, за которым необходимо следовать, который разрешит большинство случаев:

Никогда не помещайте файл под /bin, /lib, /sbin или /usr, кроме /usr/local, не проходя диспетчер пакетов.

Таким образом, если файл находится в области, управляемой диспетчером пакетов, Вы знаете, что это прибыло из пакета. Если это не, Вы знаете об установке его вручную.

Необходимо придерживаться пакетов, обеспеченных распределением, когда это возможно. Только установите сторонние пакеты, если у Вас есть зарегистрированная потребность в функциональности, которая не обеспечивается распределением. “Я хочу иметь последнюю версию”, не допустимое выравнивание. При установке сторонних пакетов сохраните примечания того, где Вы получили их, и заархивируйте пакеты (.rpm или .deb файлы) где-нибудь. Полномочие способные или вкусные источники по случайным веб-загрузкам.

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

Используйте etckeeper для хранения /etc при управлении версиями. Фиксация каждый раз, когда Вы вносите изменение со значимым сообщением.


Если Вы столкнулись с ситуацией, где Вы сделали вещи грязный путь и потеряли след, куда часть программного обеспечения прибывает из:

  • Установите чистую версию того программного обеспечения в надлежащем месте, следующем совету выше.
  • Тест, что новая установка работает на Ваши намеченные цели.
  • Переключите свои сервисы для использования новой установки.
  • Очистите старую установку как лучше всего, Вы можете.
7
27.01.2020, 20:12

Я могу предложить, чтобы Вы использовали puppet для отслеживания установленного программного обеспечения в Linux.

Марионетка, автоматизированный административный механизм для Вашего *отклоняет системы, выполняет задачи администрирования (такие как добавляющие пользователи, устанавливая пакеты, и обновляя конфигурации сервера) на основе централизованной спецификации.

Можно отослать ссылку

1
27.01.2020, 20:12
  • 1
    Спасибо за ссылку! Но мне нужно что-то на командной строке. На первый взгляд марионетка только работает с в настольной системе. –  acme 16.02.2012, 10:37

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

В моем случае я пытаюсь установить каждый пакет командной строкой, использующей склонный - добираются насколько пакет находится там в репозиториях Ubuntu. Если это не присутствует в их репозитории, то необходимо прочитать руководство по установке той утилиты и установить его основанный на том, использует ли утилита Make-файл или что-то еще.

1
27.01.2020, 20:12

Теги

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