При удалении пакета Debian, как я могу также удалить Python *.pyc файлы?

Если Вы просто потеряли один диск, необходимо было смочь восстановиться с того использования намного более безопасного --assemble.

Вы работали, создают теперь так много, что все UUID отличаются. sdc1 и sdd1 совместно используйте UUID (ожидаемый, поскольку это - Ваш рабочий массив)... остальные, диски совместно используют имя, но у всех есть различные UUID. Таким образом, я предполагаю, что ни один из тех не исходные суперблоки.Очень плохо...

Так или иначе я предположил бы, что Вы или пытаетесь использовать неправильные диски, или Вы пытаетесь использовать неправильный размер блока (значение по умолчанию изменялось со временем, я верю). Ваш старый массив, возможно, также использовал другую версию суперблока — что значение по умолчанию определенно изменилось — который мог сместить все секторы (и также уничтожить некоторые данные). Наконец, его возможное, Вы используете неправильное расположение, хотя это менее вероятно.

Также возможно, что, Ваш тестовый массив был чтением-записью (с md точки зрения), который пытается использовать ext3, на самом деле сделал некоторые записи. Например, воспроизведение журнала. Но это - то, только если это нашло суперблок в какой-то момент, я думаю.

BTW: Я думаю, что действительно необходимо использовать --assume-clean, хотя, конечно, ухудшенный массив не попытается начать восстанавливать. Затем Вы, вероятно, хотите сразу установить только для чтения.

1
13.12.2013, 17:11
2 ответа

Относительно Вашего первого вопроса:

Пакет XYZ устанавливает некоторые сценарии Python, который на выполнении создает .pyc файл. Теперь На удалении я хочу удалить все файлы. Каков был бы postrm сценарий для чистого удаления пакета?

В целом подходящий postrm сценарий (я верю), сгенерированный автоматически debhelper и друзьями. См. страницу справочника для dh_python. В частности, говорится в этой странице справочника

Если некоторые модули должны быть скомпилированы в байт во время установки, соответствующий postinst и prerm сценарии будут сгенерированы. Если уже скомпилированные модули байта найдены, они удалены.

Относительно Вашего второго вопроса,

Также XYZ настроен с помощью debconf файл, который на установке пакета предлагает пользователю к, принимает EULA. Как я выхожу, если пользователь говорит "нет" EULA?

Я не знаю ответ бесцеремонно, но смотрю на шаблоны debconf для части собственного программного обеспечения, включенного в Debian. Java Sun является примером, который имеет (имел?) EULA, который был скуплен debconf.

ПРИЛОЖЕНИЕ:

Так как OP кажется неубежденным, вот дословная копия prerm сценария для названного пакета python-corrmodel. Я записал программное обеспечение и также упаковку Debian. Однако я не записал postinst и prerm сценарии, и на самом деле не посмотрел на них до этого момента. Заметьте, что prerm сценарий звонит pyclean утилита, которая является частью Python. Справка говорит:

pyclean - удаляет .pyc и .pyo файлы

Заметьте также, что в сценарии говорится, что код был сгенерирован dh_python2.

Одно заключительное примечание: Я рекомендую использовать dh, который является относительно новым по сравнению со старой школой debhelper, но растет быстро в популярности. В основном, dh по умолчанию вызывает все правила debhelper в режиме по умолчанию в некотором определенном порядке. Если Вы хотите настроить поведение конкретной команды debhelper, можно переопределить его. Вот описание горячекатаных переопределений Joey Hess, автором debhelper. Большое преимущество состоит в том, что Ваш файл правил намного менее нарушен, и можно быть уверены, что все команды называют в правильном порядке.

Вот prerm сценарий.

#!/bin/sh
set -e

# Automatically added by dh_python2:
if which pyclean >/dev/null 2>&1; then
        pyclean -p python-corrmodel 
else
        dpkg -L python-corrmodel | grep \.py$ | while read file
        do
                rm -f "${file}"[co] >/dev/null
        done
fi

# End automatically added section

ПРИЛОЖЕНИЕ 2:

Так как я рекламировал dh, Я добавлю свой файл правил ниже. Это не полный файл правил, но эта строка содержит основную логику. Это в основном имеет debhelper рука от сборки к a setup.py сценарий, который затем делает тяжелый подъем.

%:
        dh $@ --with python2 --buildsystem=python_distutils --install-layout=deb
7
27.01.2020, 23:13
  • 1
    Спасибо за любезную помощь.. как упомянуто в Вашем ответе postrm сценарий (я верю), сгенерированный автоматически debhelper и друзьями. В моем случае это не делает, кажется, происходит так или иначе.. может ли быть могла быть некоторая другая опция. –  Dipak Ingole 11.12.2013, 12:47
  • 2
    @captain, Если можно обнародовать программное обеспечение, я предлагаю, чтобы Вы разместили источники пакета Debian в Интернете. Затем люди могут смотреть непосредственно. postinst сценарий для *.pyc файлов не должен требовать ручной обработки. Существует много пакетов в Debian с помощью Python, и ни один из них не делает это вручную. –  Faheem Mitha 11.12.2013, 14:02
  • 3
    Очень ценивший... Если бы у меня мог бы быть шанс, я дал бы Вам щедрость миллиардов. +1 для ответа на первый вопрос. Можно ли помочь мне решающий второй вопрос также. И еще один вопрос, что делает debian python policy для которого я отправил ниже стендов затем? –  Dipak Ingole 12.12.2013, 08:25
  • 4
    @captain: Обратите внимание, что задающий 2 вопросов в одном, поскольку Вы сделали здесь, не является хорошей формой. Вы смотрели на некоторые другие шаблоны debconf, как я предположил? Если так, разве это не отвечало на Ваши вопросы? Я не понимаю Вашего вопроса о debian политике Python. Политика просто говорит, что правила должны быть, следует. Это ничего не говорит о том, как выполнить их. –  Faheem Mitha 13.12.2013, 14:27
  • 5
    Извините за тот Faheem.. Я посмотрел на солнце, Java debconf обрабатывает.I по шаблону, не мог вычисленный, как выйти из обслуживающих сценариев. –  Dipak Ingole 13.12.2013, 14:37

Что касается

политика Python debian (2.6)

Если двоичный пакет обеспечивает какие-либо независимые от двоичного файла модули (foo.py файлы), соответствующие скомпилированные модули байта (foo.pyc файлы) и оптимизированные модули (foo.pyo файлы) не должны поставляться в пакете. Вместо этого они должны быть сгенерированы в postinst пакета и удалены в prerm пакета. prerm пакета должен удостовериться, что и foo.pyc и foo.pyo удалены.

Это означает, что байт скомпилировал файлы (.pyc/pyo) должен быть удален в prerm фазе.

Таким образом, я получил ответ к сначала своему вопросу.Not отмечающий это как корректный.Needs больше внимания на это.

0
27.01.2020, 23:13

Теги

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