Нахождение, что более ранняя версия понижает до

Ответ Cjm корректен, но $? может использоваться глупыми способами в сценариях оболочки, и я хотел бы предостеречь от этого. Много плохих сценариев оболочки имеет повторный шаблон кода:

run_some_command
EXIT_STATUS=$?

if [ "$EXIT_STATUS" -eq "0" ]
then
    # Do work when command exists on success
else
    # Do work for when command has a failure exit
fi

Если вообще возможный (проблемы удобочитаемости иногда нарушают) необходимо кодировать эту ситуацию по-другому:

if run_some_command
then
    # Do work when command exists on success
else
    # Do failure exit work
fi

Это последнее использование быстрее, не загрязняет переменное пространство имен оболочки тем, какие суммы работать временно переменные, могут часто быть намного более читаемыми для людей и поощряют использование "положительной логики", практику записи условных выражений без отрицания, который имеет познавательную простоту в большинстве ситуаций. Это покончило с использованием $? по большей части.

10
27.06.2011, 19:53
2 ответа

Кэш APT живет в /var/cache/apt/archives. Если у Вас есть подходящая версия пакета там, можно установить его с dpkg -i /var/cache/apt/archives/sqlite3-VERSION.deb.

Если у Вас нет его, тестирование в настоящее время имеет 3.7.6.3-1 (загружаемый от любого зеркала Debian), и стабильный в настоящее время имеет 3.7.3-1; или можно найти (почти) любую версию, которой это когда-либо было в Debian на snapshot.debian.org. Так как это - пунктуальная потребность, будет самым легким загрузить пакет вручную и установку с dpkg (но можно также определить конкретную дату снимка как источник APT, как объяснено на snapshot.d.o домашней странице).

Можно узнать, какая версия, используемая, чтобы быть установленной путем просмотра dpkg, входит в систему /var/log/dpkg.log или APT входит в систему /var/log/apt или Способность входит в систему /var/log/aptitude.

В Способности отметьте ошибочную версию, как запрещено для установки: F введите интерактивный UI или aptitude forbid-version в интерактивном режиме. Если ошибка не исправлена в следующем выпуске, отметьте пакет как “в ожидании” для предотвращения автоматических обновлений до следующего приказа (= ключ или aptitude hold команда).

8
27.01.2020, 20:02
  • 1
    Это работало только с двумя незначительными изменениями (ищущий libsqlite и amd64 платформой). dpkg -i был действительно самый быстрый путь. –  Victor Nicollet 27.06.2011, 20:22

файл /var/log/dpkg.log имеет историю изменений. Сделайте grep на этом для нахождения ответа.

2
27.01.2020, 20:02
  • 1
    Это действительно подтверждает, что я работал 3.7.6.3-1. Теперь, я должен найти это :-) –  Victor Nicollet 27.06.2011, 20:16

Теги

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