Вопрос или проблема
Я установил OpenBSD и затем приступил к загрузке Firefox, используя переменную среды PKG_PATH.
Это сработало и, казалось, работало довольно хорошо, но затем, захотев попробовать другой браузер, я удалил Firefox с помощью pkg_delete
(что, конечно, не было необходимо).
Теперь я не могу загрузить ни один браузер, так как по какой-то причине система теперь не распознает ни один FTP-сервер, к которому я пытаюсь подключиться. Каждый раз, когда я пытаюсь использовать ‘export PKG_PATH’, я получаю сообщение ‘no such directory’.
Есть ли какие-то подсказки, что произошло и что я могу сделать?
Не используйте переменную окружения PKG_PATH, она вам не нужна. Если вы установили систему с помощью зеркала, инструменты для работы с пакетами достаточно умны, чтобы использовать то же зеркало для загрузки пакетов.
В противном случае выполните эту команду от имени root:
echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl
Если вы используете -stable, pkg_add
загрузит пакеты оттуда.
Если вы используете -current и pkg_add
не может найти пакеты, используйте pkg_add -Dsnap
. Например: pkg_add -Dsnap -Vi chromium firefox
.
Вы столкнулись с чем-то, что происходит перед каждым выпуском OpenBSD. OpenBSD разрабатывается на “одной дорожке”: дерево исходного кода помечается как 6.4, выпускается релиз, разработки продолжаются около 6 месяцев и предоставляются в виде снапшотов, пока разработчики не находят, что изменения стабильны для выпуска нового релиза, в этот момент дерево помечается как 6.5 и так далее.
Это означает, что в течение короткого времени (т.е. несколько дней до нового релиза) ядро помечается как “6.5” вместо “snapshot”. Когда вы используете pkg_add
, оно будет искать пакеты для ядра, которое у вас работает, будет искать пакеты “6.5”, которые будут доступны только позже, отсюда и сообщение no such directory
. Как ответил Руфо, добавление -D snap
к pkg_add
решит (временную) проблему, сказав pkg_add
искать “snapshot” пакеты, даже с “release” ядром. Из man pkg_add
:
snap
Force ‘%c’ and ‘%m’ to expand to ‘snapshots’, even on a release kernel
Это, конечно, не идеально, но было проверено временем и лучше всего работает для разработчиков OpenBSD (см. презентацию по ссылке выше, чтобы узнать больше о релизной инженерии OpenBSD). Добавление -D snap
за несколько дней до релизов, раз в два месяца, – это малая плата за использование снапшотов.
Установка приложений с помощью pkg пакетов или портов системы в OpenBSD одинакова. Вы выбираете один. Но между двумя, pkg пакеты очень просты в использовании.
В качестве справки вы можете прочесть статью, которая обсуждает оба процесса
Ответ или решение
Установка пакетов в операционной системе OpenBSD — это задача, которая может показаться сложной для новичков, особенно если возникают проблемы с сетевыми подключениями. Ваша ситуация — не редкость среди пользователей OpenBSD, поэтому рассмотрим все аспекты, связанные с этой процедурой и её потенциальными проблемами.
Теория: основы установки пакетов в OpenBSD
OpenBSD предоставляет два основных способа установки программного обеспечения: через бинарные пакеты (pkg) и через систему портов (ports). Наиболее удобным и простым способом является использование бинарных пакетов. OpenBSD предусматривает использование инструмента pkg_add
для загрузки и установки пакетов из репозиториев.
Обычно установка пакетов будет работать без необходимости прямого указания пути к репозиторию, поскольку система определяет его автоматически, используя файл /etc/installurl
. Этот файл содержит URL репозитория, с которого система будет загружать пакеты.
Пример: устранение и диагностика проблем
В вашем сценарии используются переменные окружения, что в наше время не является необходимым для OpenBSD. Установив правильный адрес репозитория в файле /etc/installurl
, вы сможете избежать ошибок, связанных с определением путей. Чтобы устранить ваши текущие проблемы, следуйте следующим шагам:
-
Проверьте файл
installurl
: Убедитесь, что у вас корректно указан URL-адрес репозитория. В большинстве случаев адрес будет таким:https://cdn.openbsd.org/pub/OpenBSD/
. Чтобы задать его, выполните команду:echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl
-
Понимание -stable и -current версий: Обратите внимание, что OpenBSD выпускается в двух ветках: -stable — для тех, кто предпочитает стабильность, и -current, которая предоставляет самые последние обновления и может своевременно содержать нестабильные изменения. Если вы используете версию -current, то в моменты, когда система переходит к новой версии, могут возникнуть временные проблемы с пакетом, такие как "no such directory".
-
Использование флага -D snap в pkg_add: Если вы используете версию -current, вам может понадобиться флаг
-D snap
, чтобы указать системе, что нужно искать пакеты в каталоге snapshot, даже если у вас последняя версия ядра. Это делается следующей командой:pkg_add -Dsnap <имя_пакета>
Эта команда заставляет pkg_add
искать пакеты в snapshots
, что особенно актуально в преддверии новых релизов OpenBSD, когда серверы могут быть еще не полностью обновлены для последнего релиза.
Применение: как это реально работает
Начав с теории и приведенных выше примеров, вы сможете настроить вашу систему OpenBSD для корректной установки пакетов. Однако не стоит забывать определенные моменты:
-
Интернет-соединение: Убедитесь, что ваше сетевое подключение активно и вы можете доступать до внешних зеркал. Используйте
ping
илиtraceroute
для диагностики проблем с сетевыми соединениями. -
Обновление системы: Регулярно обновляйте систему. Это поможет устранить многие проблемы с зависимостями и совместимостью пакетов.
-
Чтение документации: Каждый раз, когда встречаете проблемную ситуацию, помните, что подробная документация для OpenBSD доступна как онлайн, так и через встроенные инструменты (например,
man pages
).
Следуя этим рекомендациям, вы сможете эффективно устанавливать и обновлять программы на OpenBSD, избегая часто встречающихся ошибок. Учет поведения системы в различных ветках и умение применять концепции на практике гарантирует, что у вас будет стабильная и функциональная операционная система.
Если у вас возникли дополнительные вопросы или нужна дальнейшая помощь, рекомендую обратиться к более специфическим ресурсам или сообществам разработчиков OpenBSD, где всегда можно найти поддержку и актуальные рекомендации.