gdb
поддерживает $argc
, который в соответствии с руководством расширяется до чего-то от 0 до 10, поэтому в вашем случае это, вероятно, будет
define pgdir
if $argc == 2
...
else
...
end
end
Внимание! А вот и драконы!
Мне непонятно, что вы подразумеваете под «перенастройкой» машины. Вам не нужно вносить никаких изменений в базовую установку FreeBSD. Однако вам необходимо внести изменения в машину, поскольку эти пакеты конфликтуют.
Если вы посмотрите на Freshports , вы увидите конфликты:
CONFLICTS_INSTALL:
mysql5[0-46-9]-client-*
mariadb*-client-*
percona*-client-*
В обычном режиме вы просто попросите установить нужный пакет, а он предупредит вас об этих конфликтах и предложит их удалить.
pkg install mysql55-client
Затем должно быть предложено удалить mysql56-client
.
И это приводит нас к тому, что я думаю, является путаницей с вашей стороны номеров версий.
Версии 5.5 и 5.6 — разные пакеты:
Вы утверждаете, что mysql55-client-5.6.47
. Я думаю, что скорее всего у вас есть mysql56-client-5.6.47
.
Вы можете увидеть, что вы на самом деле установили в своей системе, с помощью:
pkg info
Таким образом, с точки зрения приложения очень неудобно устанавливать разные версии и обрабатывать конфликты.Если вы со временем установили много приложений с зависимостями, которые вам больше не нужны, вы можете очистить их с помощью:
pkg autoremove
Всегда читайте справочную страницу по адресу pkg (8). Существует множество руководств по управлению пакетами.
Ваш случай с клиентом Mysql прост, и его легко переключать туда и обратно, поскольку это простой клиент.
Но если у вас также есть сервер Mysql, все может стать сложнее. Теоретически серверное приложение так же легко можно поменять местами. Но это сервер базы данных, а у этих вещей есть... данные.
Таким образом, вы можете легко откатить приложение. Но данные полностью зависят от приложения. При переключении номеров версий в базах данных часто обновляются структуры данных на диске. Если данные были обновлены, они, вероятно, не будут корректно обрабатываться более старой версией. Типичным откатом -назад было бы восстановление резервной копии. Но это определяется приложением.
Существует множество различных способов создания таких резервных копий. Особенно для базы данных.
Тем не менее, у FreeBSD есть один важный инструмент, который может вам помочь. Если вы используете файловую систему ZFS , вы можете делать снимки . Если вы сделаете снимок перед обновлением, вы можете сделать мгновенный откат, вернувшись к этому снимку. Затем вы можете выполнить несколько обновлений (и откатов ). Однако это требует, чтобы вы сделали снимок перед обновлением.
Процесс создания снимка выполняется очень быстро. Но чтобы быть в безопасности, вы должны убедиться, что mysql готов к моментальному снимку с помощью FLUSH TABLES WITH READ LOCK
. Сделайте снимок. Затем UNLOCK TABLES
.См. этот ответ и это объяснение
mysql << EOF
FLUSH TABLES WITH READ LOCK;
system zfs snapshot data/db@snapname
UNLOCK TABLES;
EOF