Официальная ссылка на формат версии пакета Debian содержится в Руководстве по политике Debian . Формат предназначен для того, чтобы позволить «разумным» номерам версий с четко определенным (если несколько сложным) отношением сравнения решать, когда версия является более поздней, чем другая.
По большей части сравнение представляет собой лексикографическое сравнение последовательности. Например, 1foo
сортируется перед 1 ga
. Однако последовательности цифр сравниваются в числовом порядке, поэтому foo10bar
сортируется после foo9bar
.
При лексикографическом порядке последовательность всегда сортируется перед ее префиксом. Символ тильды допускает отклонение от этого: foo _ bar
всегда сортируется перед foo
, а также перед любой версией, которая начинается с foo
, за которой следует символ, отличный от ~
. Это часто используется для бета-версий: 8u60 ~ b22
сортируется перед 8u60
. Не знаю, почему пакеты OpenJDK 8 чередуются между суффиксами -b
и ~ b
.
Суффиксы Tilde также используются для бэкпортов всех типов. Например, если одна и та же версия пакета присутствует как в Debian stable, так и в тестировании, и исправление безопасности должно войти в stable, то пакет в stable будет иметь суффикс, как -2 ~ deb1
, в то время как версия в тестировании (скомпилированная по более поздним библиотекам) будет иметь -2
; что путь пакет является модернизацией к версии -1
, но если система будет обновлена со стабильной до тестовой, стабильная версия -2 ~ deb1
будет обновлена до тестовой версии -2
. Официальные бэкпорты используют ~ bpo NUMBER
для той же цели, таким образом, версия 4.2 ~ bpo7
будет обновлена до 4.2
, если она появится в основном выпуске.
-121--49133-
Если по какой-либо причине необходимо прочитать блочное устройство, используя размер блока 16K:
dd if=/mnt/nfs bs=16k | pv -L > /dev/sda
Где
- максимально допустимое количество байтов в секунду, которое должно быть передано, или максимально допустимое количество кибибайт, мибайт, гибайт, [...] в секунду, которое должно быть передано, если K, M
Однако если вам действительно не нужно читать файл, используя размер блока 16K, просто используйте pv
, который может читать блочные устройства:
pv -L /mnt/nfs > /dev/sda
-121--174400-
Вам не нужно dd
здесь. pv
уже выполняет работу по перекладке своего входного сигнала на выход.
pv -L 1m /dev/sda
Несмотря на то, что вы могли прочитать на некоторых веб-страницах, в dd
нет волшебства. Вам не нужно использовать его для доступа к устройствам. Вся магия в /dev/stuff
.
Примечание: эта команда имеет смысл, если /tmp/nfs
является образом диска и вы хотите записать его на диск /dev/sda
.Это эквивалентно команде в вашем вопросе, кроме ограничения скорости. Возможно, сервер NFS не задействован.
Есть два очевидных способа решить эту проблему:
Сериализация задач. Вместо того, чтобы планировать две задачи одновременно, запланируйте сценарий, который запускает задачи одну за другой.
Используйте рекомендательную схему блокировки, чтобы заблокировать операцию записи задач таким образом, чтобы только одна задача могла писать одновременно. См. вопросы с тегами замок и стадо .
Эти две задачи могут быть объединены в один сценарий, который запускает обе задачи в фоновом режиме, в то время как сами задачи используют некоторую форму блокировки, чтобы не создавать искаженные/перемешанные выходные данные.