Как проверить, установлена ​​ли у меня определенная зависимость?

Это первое, что я прочитал с info sync, которое приводит меня к разделу «Синхронизация операций ввода-вывода» (arch linux ).

In most modern operating systems, the normal I/O operations are not executed synchronously. I.e., even if a 'write' system call returns, this does not mean the data is actually written to the media, e.g., the disk.

С помощью man 3 syncя получаю "Руководство программиста POSIX" :Функция sync()должна...расписание... . А потом:

The writing, although scheduled, is not necessarily complete upon return from sync().

Я вижу две ситуации, когда это имеет значение:

программисты :Если вы делаете низкоуровневое чтение сразу после записи (что-то в этом роде)

пользователи :Если отсоединить (внешний )блок -устройство сразу после записи. Если не размонтировать, может помочь синхронизация. Но если вы все равно umount(и должны ), вам не нужна синхронизация.

Я полагаю, на практике имеет значение, если вы выполняете одно ddс небольшими блоками для быстрого внутреннего устройства в бездействующей системе (пользователь не может побеспокоить это )или если несколько ddпроцессы записывают огромные блоки в разные разделы медленного USB.

Даже с синхронизацией (man 1 sync):

BUGS Persistence guarantees vary per system. See the system calls below for more details.

Вопрос:

So when writing to a block device, are the any circumstances in which dd will exit before all writing has completely finished? Has this actually ever happened to anyone?

Ну да, если индикаторы мигают, это означает, что флэш-памяти USB все еще требуется питание для хранения этих блоков. И к тому времени, когда вы закончите набирать «синхронизация», все будет готово.

-1
07.11.2020, 16:39
1 ответ

Запустите симуляцию предполагаемой установки пакета от имени обычного пользователя, не предваряя команду sudoи ничего не устанавливая. Откройте терминал и введите:

apt install --simulate package-name

, где вы заменяете package-nameименем пакета, установка которого моделируется. Приведенная выше команда выведет список всех дополнительных пакетов зависимостей, которые будут установлены для установки этого пакета.

Запустите аналогичную команду, чтобы имитировать установку файла.deb. Откройте терминал, измените каталоги с cdна каталог, содержащий файл.deb (package -name.deb в этом примере )и выполните следующую команду.

apt install --simulate./package-name.deb
0
18.03.2021, 22:51

Теги

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