У меня возникла проблема с установкой linux-image-amd64. Я только что обновил свою машину с kali linux до версии 2020.2.

Вы подняли интересный вопрос и сделали утверждение, которое следует сначала проверить.

Я проверил поведение:

$shell -c '[ Makefile -nt SCCS/s.Makefile ] && echo newer'

с различными снарядами. Вот результаты:

  • bash Не работает -ничего не печатает.

  • чушьработы

  • тире Не работает -ничего не печатает.

  • ksh88 Не работает -ничего не печатает.

  • кш93работает

  • mksh Не работает -ничего не печатает.

  • шикарный печатает :шикарный :[:-nt :неожиданный оператор/операнд

  • яшработает

  • zshработает в более новых версиях , более старые версии ничего не печатают

Итак, четыре из девяти оболочек поддерживают функцию-nt и правильно ее реализуют. Правильно в этом случае означает, что:может сравнивать метки времени на последних платформах, которые поддерживают суб-зернистость второй метки времени . Обратите внимание, что файлы, которые я выбрал, обычно отличаются только несколькими микросекундами в своих метках времени.

Так как легче найти рабочую findреализацию, рекомендую заменить

if [ "$file1" -nt "$file2" ] ; then
    echo newer
fi

выражением на основе find.

if [ "$( find "$file1" -newer "$file2" )" ]; then
    echo newer
fi

работает, по крайней мере, до тех пор, пока $file1не содержит только новые строки.

if [ "$( find -L "$file1" -newer "$file2" -exec echo newer \; )" ]; then
    echo newer
fi

немного медленнее, но работает корректно.

Кстати,:Что касается make , я не могу говорить обо всех реализациях make, но SunPro Makeподдерживает сравнение времени с точностью до наносекунд, начиная с прибл. 20 лет, а smakeи gmakeдобавили эту функцию совсем недавно.

0
19.05.2020, 17:05
1 ответ

Итак, наконец, я решил эту проблему. Я обнаружил, что при обновлении моей машины kali произошло неудачное завершение работы, что привело к отсутствию некоторых файлов в образе linux -5.5.0 и вызвало проблему с конфигурацией. Я просто удалил всю информацию о Linux -image -5.5.0 из Dpkg и попробовал apt-get updateи apt autoremove, и это решило эту проблему.

0
28.04.2021, 23:13

Теги

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