Опции для configure
объясняются в выводе configure --help
, но исходный дистрибутив coreutils также имеет хорошую документацию в текстовом файле INSTALL
.
Короче говоря, --prefix
устанавливает префикс установки. Это верхний каталог, в котором будут установлены bin
, lib
и другие каталоги. Префикс установки по умолчанию часто /usr/local
, но часто требуется установить программное обеспечение в другом месте, поэтому существует этот параметр --prefix
.
Диспетчер пакетов Homebrew для macOS, который вы, похоже, используете, использует --prefix
для установки основных утилит GNU по определенному пути и предоставляет к ним доступ с помощью символических ссылок и возможности изменить вашу PATH
среду. Переменная. Homebrew разработан так, чтобы не устанавливать вещи непосредственно в /usr/local
, что позволяет вам использовать этот путь установки для вещей, которые вы компилируете и устанавливаете самостоятельно. См. FAQ по Homebrew для информации и предостережений по этому поводу.
С помощью --program-prefix
можно установить строку, которая должна быть добавлена в начале ко всем исполняемым двоичным файлам. Очень распространено префикс исполняемых файлов GNU coreutils и исполняемых файлов другого программного обеспечения GNU с префиксом g
на не -Linux Unices, которые уже предоставляют собственные утилиты с такими же именами. Это означает, что вы получите gls
, gxargs
, gnice
и т. д. в качестве имен двоичных исполняемых файлов.
--without-gmp
отключает использование gmp
, которая является библиотекой GNU для арифметики произвольной точности.
Параметры являются общими для всех программ, поставляемых со сценарием configure
, сгенерированным с помощьюautoconf
. Обычная форма последней опции — --without-xxx
, где xxx
— это какая-то другая библиотека, которую хотелось бы избежать использования (или хотеть использовать с--with-xxx
). Часто есть дополнительные опции --disable-xxx
и --enable-xxx
для отключения и включения определенных функций программы.
Вы правы в своих предположениях :Если вы просто делаете снимок с помощью dd, результирующие сохраненные данные могут быть противоречивыми. Так же могут быть ошибки при чтении с sdcard, а так же ошибки передачи (что редко но возможно ).
Вы можете попробовать остановить все записывающие демоны/приложения, перемонтировать все файловые системы RO, а затем сделать моментальный снимок dd -, который гарантирует целостность данных, но не предотвратит ошибки чтения/передачи.
Для максимальной безопасности:
Вы указали на реальный риск. Если вы копируете базовую структуру работающей файловой системы, у вас нет гарантии, что то, что вы скопировали, будет пригодно для использования.
Даже если копия файловой системы успешно монтируется и выглядит хорошо, у вас нет гарантии, что скопированные вами блоки соответствуют блокам, выделенным для конкретного файла. (Возможно, у вас есть запись в каталоге для файла, который имеет размер x МБ, но содержит неполные данные внутри выделенных для него блоков.)
Это можно показать в качестве примера последовательного копирования с начала до конца SD-карты. Примерно в середине -пути резервного копирования считайте, что запись в каталоге создается для нового файла, а содержимое файла записывается на диск. Метаданные могут быть захвачены, потому что они записаны в каталог, физически расположенный ближе к концу SD-карты, поэтому файл, похоже, существует в резервной копии. Однако,содержимое файла могло быть записано на более раннюю часть диска, которую вы уже обработали, и поэтому не делайте его резервной копией.
Не делай этого.
Наилучшим вариантом является копирование моментального снимка (см. LVM, файловые системы с таблицами моментальных снимков и коммерческое программное обеспечение ).
Следующим лучшим способом является выполнение резервного копирования на основе файла -(см. rsync
иrsnapshot
); это по-прежнему зависит от условий гонки, когда два или более файла могут оказаться несинхронизированными в резервной копии, и поэтому не подходит для непрерывно изменяющихся файлов, таких как файлы базы данных, но в основном большинство файлов будут скопированы успешно и правильно. Если вам нужно сделать резервную копию базы данных в этом сценарии, рассмотрите возможность использования собственного инструмента резервного копирования базы данных, а затем используйте rsync
/ rsnapshot
, чтобы скопировать полученный файл резервной копии. Вам также нужно будет отдельно и явно скопировать таблицу разделов диска, и разделы файловой системы, не относящиеся к -, такие как те, которые участвуют в процессе загрузки (dd
, могут быть здесь вашими друзьями, если вы подойдете к этому осторожно ).
Да, использование dd
для резервного копированиясмонтированнойфайловой системы имеет определенные риски. Как сказал кто-то здесь, «Если вам повезет, вы обнаружите проблемы вскоре после резервного копирования; если вам не повезет, вы обнаружите их гораздо позже».
Я не думаю, что вы используете правильный инструмент для работы. Поскольку у вас есть Raspberry Pi (и , есливы используете RPi OS Buster ), вы можете использовать image-utils
. Он использует rsync
вместо dd
, поэтому риск повреждения файла очень низок. Он также создает файл образа в качестве резервной копии -, который легко прошивается на SD-карту с помощью rufus
или etcher
, и он намного меньше, чем созданный файл образа dd
-.
У вас есть возможность обновить существующую резервную копию образа или создать новую. В любом случае резервное копирование выполняется быстро -«полное» резервное копирование на моем RPi занимает около 15 минут.
image-utils
можно скачать здесь на форуме организации Raspberry Pi. Автор оказывает поддержку в том же месте, и это, кажется, довольно популярно. У меня нет связи, но я нахожу это очень полезным.
Этот вопрос был объявлен дубликатом , и, возможно, это точная оценка с общей точки зрения Linux и Unix. Однако,Я хотел обратить внимание на тот факт, что существует (по крайней мере одно )решение для резервного копирования, которое работаетуникальным образомс ОС Raspberry Pi:***image-utils***
.
Различные вопросы по резервному копированию задаются в RPi SE время от времени, а для тех, кто попадает сюда в поисках решения, есть более подробный ответ доступен там.