как узнать версию freebsd

Все способы узнать версию дистрибутива Linux (а также FreeBSD, MacOS и прочих)

Учитывая зоопарк дистрибутивов Linux, иной раз, получая доступ к серверу, не понимаешь, где ты находишься. Особенно это больно, если нужно поставить недостающий пакет.

Учитывая зоопарк дистрибутивов Linux, иной раз, получая доступ к серверу, не понимаешь, где ты находишься. Особенно это больно, если нужно поставить недостающий пакет. Руки сами пишут

или что-то подобное, но в ответ лишь

Следующее, что приходит в голову:

Точнее, это как раз (лично мне) первым и вспоминается, но в голове крутится, что есть способ «правильнее». Да, именно тот, который я первым и написал. Также можно сделать через

— «правильный вариант» для людей «всё есть файл».

Вообще, это не единственный «релиз», который у нас есть в /etc.

У красноголовых можно встретить redhat-release, например.

Идём дальше по файлам:

(их два на Ubuntu). Ну и

Ещё неплохой вариант «выцыганить» версию из логов dmesg

Или вообще использовать утилиту inxi (в иных дистрибутивах и она стоит, например Linux Mint):

A можно глянуть, как ядро Linux запущено:

sysctl также нам поможет:

Окей, нет у нас этих утилит, файлов, но кто-то оставил gcc…

Ну и вообще можно натравить strings на тот же /bin/ls и получить также много информации. Правда, там так просто не найти нужное (или вообще не найти).

Утилита file также может рассказать многое:

Если же ничто из этого не помогло, поищите на экране кнопку «Пуск» ⛧

Есть ещё вариант спросить админа… Но он слишком дзенский.

— Максим, — спросил Федор — в чем смысл дзен?
Максим ответил:
— Смысл дзен — это как налить из чекушки четыре полных стакана водки.
— Да, — сказал Федор — из пустой.
— Да, — ответил Максим — и не выпить.
— Да, — сказа Федор — и водку в стаканы не наливать.

Я уверен, это не все возможные способы. Если вы знаете другие «элегантные» способы узнать дистрибутив Linux и версию ядра — поделитесь ими в комментах. Самые интересные, естественно, добавлю в этот список.

Источник

forum.lissyara.su

Модератор: terminus

Вопрос несколько нубский, но все же.

Видно, что стоит 7.2-RELEASE. В бюллетенях безопасности FreeBSD для каждого патча есть указание версии, в которой баг исправлен (к примеру, RELENG_7_2, 7.2-RELEASE-p6 ).

Собственно, вопрос: а как узнать, какая версия в ветке у меня стоит (я имею ввиду 7.2-RELEASE- p6)?

как узнать версию freebsd. host food ru avarar. как узнать версию freebsd фото. как узнать версию freebsd-host food ru avarar. картинка как узнать версию freebsd. картинка host food ru avarar.

Услуги хостинговой компании Host-Food.ru

Непрочитанное сообщение Гость » 2010-01-13 8:38:59

как узнать версию freebsd. file.php?avatar=10499 1275575998. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=10499 1275575998. картинка как узнать версию freebsd. картинка file.php?avatar=10499 1275575998.

как узнать версию freebsd. file.php?avatar=4904 1222451379. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=4904 1222451379. картинка как узнать версию freebsd. картинка file.php?avatar=4904 1222451379.

как узнать версию freebsd. file.php?avatar=10499 1275575998. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=10499 1275575998. картинка как узнать версию freebsd. картинка file.php?avatar=10499 1275575998.

как узнать версию freebsd. file.php?avatar=10499 1275575998. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=10499 1275575998. картинка как узнать версию freebsd. картинка file.php?avatar=10499 1275575998.

обновляет систему до следующей ветки (FreeBSD 8.0), меняет ядро и вывод uname.

Я все правильно понял? )

как узнать версию freebsd. file.php?avatar=10499 1275575998. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=10499 1275575998. картинка как узнать версию freebsd. картинка file.php?avatar=10499 1275575998.

До какой версии обновится
Меняет ядро, окружения и uname

До какой версии обновится
Меняет ядро, окружения и uname

Всем спасибо, разобрался.

как узнать версию freebsd. 8e168275ca83. как узнать версию freebsd фото. как узнать версию freebsd-8e168275ca83. картинка как узнать версию freebsd. картинка 8e168275ca83.

Ответ в последней строчке:

server# freebsd-update fetch
Looking up update.FreeBSD.org mirrors. 4 mirrors found.
Fetching metadata signature for 9.0-RELEASE from update5.freebsd.org. done.
Fetching metadata index. done.
Fetching 2 metadata patches.. done.
Applying metadata patches. done.
Fetching 2 metadata files. done.
Inspecting system. done.
Preparing to download files. done.

No updates needed to update system to 9.0-RELEASE-p1.

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

FreeBSD: Как узнать версию ядра?

Модератор: arachnid

как узнать версию freebsd. file.php?avatar=8099. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=8099. картинка как узнать версию freebsd. картинка file.php?avatar=8099.

FreeBSD: Как узнать версию ядра?

Сообщение Dimka » 05.05.2006 00:19

Re: FreeBSD: Как узнать версию ядра?

Сообщение -error » 05.05.2006 06:30

как узнать версию freebsd. file.php?avatar=6400. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=6400. картинка как узнать версию freebsd. картинка file.php?avatar=6400.

Re: FreeBSD: Как узнать версию ядра?

Сообщение Zm1y » 05.05.2006 06:44

как узнать версию freebsd. file.php?avatar=85. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=85. картинка как узнать версию freebsd. картинка file.php?avatar=85.

Re: FreeBSD: Как узнать версию ядра?

Сообщение alv » 05.05.2006 06:56

как узнать версию freebsd. file.php?avatar=4233. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=4233. картинка как узнать версию freebsd. картинка file.php?avatar=4233.

Re: FreeBSD: Как узнать версию ядра?

Сообщение arachnid » 05.05.2006 10:16

как узнать версию freebsd. file.php?avatar=85. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=85. картинка как узнать версию freebsd. картинка file.php?avatar=85.

Re: FreeBSD: Как узнать версию ядра?

Сообщение alv » 05.05.2006 10:29

как узнать версию freebsd. file.php?avatar=8099. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=8099. картинка как узнать версию freebsd. картинка file.php?avatar=8099.

Re: FreeBSD: Как узнать версию ядра?

Сообщение Dimka » 05.05.2006 16:16

как узнать версию freebsd. file.php?avatar=4649. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=4649. картинка как узнать версию freebsd. картинка file.php?avatar=4649.

Re: FreeBSD: Как узнать версию ядра?

Сообщение soko1 » 06.05.2006 22:11

как узнать версию freebsd. file.php?avatar=82536. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=82536. картинка как узнать версию freebsd. картинка file.php?avatar=82536.

Re: FreeBSD: Как узнать версию ядра?

Сообщение kerogaz » 12.08.2016 10:18

Re: FreeBSD: Как узнать версию ядра?

Сообщение Lazy_Kent » 17.08.2016 01:26

как узнать версию freebsd. file.php?avatar=82536. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=82536. картинка как узнать версию freebsd. картинка file.php?avatar=82536.

Re: FreeBSD: Как узнать версию ядра?

Сообщение kerogaz » 17.08.2016 09:26

как узнать версию freebsd. file.php?avatar=4233. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=4233. картинка как узнать версию freebsd. картинка file.php?avatar=4233.

Re: FreeBSD: Как узнать версию ядра?

Сообщение arachnid » 18.08.2016 10:16

как узнать версию freebsd. file.php?avatar=82536. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=82536. картинка как узнать версию freebsd. картинка file.php?avatar=82536.

Re: FreeBSD: Как узнать версию ядра?

Сообщение kerogaz » 11.04.2017 09:23

Самый правильный ответ (потому-что система может иметь обновление без обновления ядра)

как узнать версию freebsd. file.php?avatar=4233. как узнать версию freebsd фото. как узнать версию freebsd-file.php?avatar=4233. картинка как узнать версию freebsd. картинка file.php?avatar=4233.

Re: FreeBSD: Как узнать версию ядра?

Сообщение arachnid » 11.04.2017 11:31

Самый правильный ответ (потому-что система может иметь обновление без обновления ядра)

у команды freebsd-version есть два ключа, которые как раз и показывают версию ядра и userland’а. по умолчанию показывается версия userland

Источник

Глава 21. Обновление системы и смена версии FreeBSD

21.1. Краткий обзор

Между релизами над FreeBSD ведется постоянная работа. Некоторые отдают предпочтение официально выпущенным версиям, в то время как остальные предпочитают использовать последние разработки. Тем не менее, даже для официальных версий часто выходят обновления, связанные с безопасностью и другими критическими исправлениями. Независимо от используемой версии FreeBSD предоставляет все необходимые инструменты для поддержания системы в актуальном состоянии, а также позволяет легко перейти на другую версию. Эта глава описывает, как отслеживать систему в процессе её разработки, а также основные инструменты для поддержания системы FreeBSD в актуальном состоянии.

После чтения этой главы вы будете знать:

Как поддерживать систему FreeBSD в актуальном состоянии при помощи freebsd-update, Subversion или CTM.

Как узнать состояние установленной системы по отношению к известной нетронутой копии.

Как поддерживать установленную документацию в актуальном состоянии при помощи Subversion или портов документации.

Разницу между двумя ветвями разработки: FreeBSD-STABLE и FreeBSD-CURRENT.

Как перестраивать и переустанавливать всю базовую систему.

Перед чтением этой главы вы должны:

Правильно настроить сетевое подключение (Сложные вопросы работы в сети).

Знать, как устанавливать дополнительное стороннее программное обеспечение (Установка приложений. порты и пакеты).

21.2. Обновление FreeBSD

Эта программа используется для установки распространяемых в двоичном виде обновлений безопасности и исправлений для FreeBSD без необходимости ручной компиляции и установки патчей или нового ядра. Двоичные обновления доступны для всех архитектур и версий, поддерживаемых группой безопасности. Перечень поддерживаемых версий и их ожидаемые даты окончания поддержки указаны на странице http://www.FreeBSD.org/security/.

Эта программа также используется для незначительных обновлений версии операционной системы, а также для перехода на другую ветвь выпуска релизов. Перед обновлением следует ознакомиться с объявлением о выпуске новой версии, так как там может содержаться важная информация, применимая к версии, на которую намечен переход. С соответствующими объявлениями можно ознакомиться по ссылке http://www.FreeBSD.org/releases/.

21.2.1. Конфигурационный файл

Конфигурационный файл freebsd-update самодостаточен и работает по умолчанию. Некоторые пользователи могут пожелать отредактировать конфигурационный файл /etc/freebsd-update.conf для лучшего контроля над процессом обновления. В комментариях описываются доступные в этом файле параметры, но для следующих из них может потребоваться дополнительное разъяснение:

Список каталогов с конфигурационными файлами, для которых freebsd-update попытается выполнить слияние. Процесс слияния файла представляет собой последовательность изменений в формате diff(1), похожую на mergemaster(8), но с меньшим количеством параметров. Результат слияния принимается, открывается редактор или freebsd-update прекращает работу. В случае сомнений сделайте резервную копию /etc и просто согласитесь со всеми изменениями. Для получения подробной информации по команде mergemaster смотрите Объединение файлов конфигурации.

Этот каталог предназначен для размещения патчей и временных файлов. В случае, когда пользователь выполняет обновление со сменой версии, в этом месте нужно иметь по крайней мере гигабайт свободного дискового пространства.

21.2.2. Обновления безопасности

Обновления безопасности можно загрузить и установить с использованием следующих команд. Первая команда определяет наличие незагруженных обновлений и показывает файлы, которые будут изменены в процессе обновления. Вторая команда выполняет обновление.

Если были установлены обновления ядра, то после этого нужно перезагрузить систему. Если обновление установилось для какого-либо работающего в системе двоичного файла, то следует перезапустить затронутые приложения, чтобы использовалась исправленная версия двоичного файла.

Можно настроить ежедневную автоматическую проверку наличия обновлений, добавив следующую запись в /etc/crontab :

На случай, если что-то пошло не так, в freebsd-update предусмотрен механизм возврата последнего набора изменений с использованием следующей команды:

Если после завершения всех действий было изменено ядро или какой-либо из его модулей, система должна быть перезагружена, а все затронутые исполняемые файлы нужно перезапустить.

Если конфигурация в /etc/freebsd-update.conf не изменялась, freebsd-update вместе с остальными обновлениями установит обновлённые исходные тексты ядра. После этого можно обычным способом выполнить перестроение и переустановку нового ядра с собственной конфигурацией.

21.2.3. Обновления со сменой старшей и младшей версий

Обновление с FreeBSD 9.0 на FreeBSD 9.1, называется обновлением со сменой младшего номера версии. Смена старшего номера версии происходит, когда FreeBSD переходит с одной значительной версии на другую, как, например, при обновлении с FreeBSD 9.X на FreeBSD 10.X. Оба типа обновлений можно произвести, указав freebsd-update версию, на которую нужно перейти.

Следующая команда, будучи запущенной на FreeBSD 9.0, выполнит обновление до версии FreeBSD 9.1:

После своего запуска freebsd-update анализирует содержимое конфигурационного файла и собирает необходимую для проведения обновления информацию о текущей установленной системе. На экран будет выдан перечень компонентов, которые удалось и не удалось обнаружить установленными. Например:

Следующим шагом freebsd-update попытается загрузить по сети файлы, необходимые для выполнения обновления. В некоторых случаях может потребоваться ответить на вопросы относительно того, что и как устанавливать.

Если используется ядро с собственной конфигурацией, то в этом случае появится предупреждение следующего вида:

После того, как все изменения были загружены, они будут применены. Этот процесс может занять определённое время, в зависимости от производительности и текущей загруженности компьютера. Затем будет выполнено слияние конфигурационных файлов. Процесс слияния требует от пользователя определённого вмешательства, так как для файла можно выполнить слияние автоматически, а можно открыть текстовый редактор для слияния вручную. Результат успешного слияния будет показан на экране. Неудачное или пропущенное слияние вызовет преждевременное завершение программы. Можно подготовить резервную копию каталога /etc для таких важных файлов как master.passwd и group и выполнить их слияние вручную позднее.

На данном этапе система еще не модифицирована, и все изменения и слияния происходят в отдельном каталоге. Теперь, когда все изменения успешно применены, все конфигурационные файлы объединены и кажется, что процесс должен пройти плавно, изменения могут быть установлены на диск с помощью следующей команды:

В первую очередь изменения будут применены к ядру и его модулям. При использовании ядра с собственной конфигурацией укажите для следующей загрузки обновлённое ядро /boot/GENERIC с помощью nextboot(8):

Теперь компьютер должен быть перезагружен с новым ядром:

Количество этапов установки обновлений может быть два вместо трёх и зависит от того, были ли изменены номера версий каких-либо совместно используемых библиотек.

На этом процесс завершён. Если было выполнено обновление со сменой старшего номера версии, переустановите все порты и пакеты в соответствии с описанием, которое предоставляет Обновление пакетов после смены старшей версии системы.

21.2.3.1. Собственная конфигурация ядра в FreeBSD 9.X и более поздних версиях

Иначе, ядро GENERIC можно собрать и установить из исходных текстов:

21.2.3.2. Обновление пакетов после смены старшей версии системы

Принудительное обновление все установленных пакетов приведёт к их замене на последние версии из репозитория, даже если номер версии при этом не увеличивался. Это требуется из-за смены версии ABI при обновлении на другую старшую версию FreeBSD. Принудительное обновление можно выполнить так:

Перестроение всех установленных приложений можно выполнить этой командой:

Перезагрузите машину с новой версией FreeBSD. На этом процесс обновления завершён.

21.2.4. Сравнение состояния системы

С помощью команды freebsd-update IDS можно получить состояние установленной версии FreeBSD относительно известной доверенной копии. Эта команда проверяет текущую версию системных утилит, библиотек и конфигурационных файлов, и её можно использовать в качестве встроенной системы обнаружения вторжений (Intrusion Detection System, IDS).

Для того, чтобы начать сравнение, укажите файл для сохранения результатов:

Строки в списке чрезмерно длинные, но зато такой формат вывода удобен для разбора. Так, для получения списка всех отличающихся от релиза файлов достаточно выполнить такую команду:

21.3. Обновление документации

Документация является неотъемлемой частью операционной системы FreeBSD. И хотя актуальная версия документации FreeBSD всегда доступна на сайте FreeBSD (http://www.freebsd.org/doc/), может быть удобно иметь под рукой актуальную локальную копию сайта FreeBSD, руководств, FAQ и статей.

В этом разделе описывается, как использовать исходный текст или Коллекцию Портов FreeBSD для организации актуальной локальной копии документации FreeBSD.

За информацией о редактировании и отправке изменений для документации обращайтесь к FreeBSD Documentation Project Primer for New Contributors (FreeBSD Documentation Project Primer).

21.3.1. Обновление документации из исходного кода

Для перестроения документации FreeBSD из исходного текста требуется набор инструментов, который не является частью основной системы FreeBSD. Требуемые инструменты, включая svn, можно установить из пакета или порта textproc/docproj, разработанного в рамках проекта документации FreeBSD.

После установки используйте svn для получения копии исходных текстов документации:

Первоначальная загрузка исходных текстов документации может занять некоторое время. Дайте ей завершиться.

Последующие обновления можно получить, выполнив:

После того как в /usr/doc была загружена актуальная копия исходных текстов, всё готово для обновления установленной документации.

Полное обновление всех доступных языковых версий можно выполнить, набрав команду:

Для обновления только указанной языковой версии команду make можно запустить в соответствующем подкаталоге /usr/doc :

Альтернативный способ обновления документации заключается в запуске следующей команды из из /usr/doc или подкаталога с желаемой языковой версией:

Используемый при установке формат можно указать через FORMATS :

Данные параметры включают:

Перечень языков и кодировок для построения и установки, например, en_US.ISO8859-1 для англоязычной документации.

21.3.2. Обновление документации из портов

В предыдущем разделе был представлен метод обновления документации FreeBSD из исходных текстов. В этом разделе описывается альтернативный метод с использованием Коллекции Портов, который позволяет:

Установить предварительно собранный пакет документации без необходимости локального построения чего-либо или установки инструментария документации.

Выполнить построение исходных текстов документации через инфраструктуру портов, что несколько упрощает этапы загрузки и построения.

Порты документации организованы следующим образом:

Пакет или порт misc/freebsd-doc-en устанавливает всю англоязычную документацию.

Метапакет или порт misc/freebsd-doc-all устанавливает всю документацию на всех доступных языках.

Имеются пакеты и порты для каждого перевода, например, misc/freebsd-doc-hu для венгерской документации.

При использовании двоичных пакетов документация FreeBSD будет установлена во всех доступных форматах для данного языка. Например, следующая команда установит последнюю версию пакета венгерской документации:

Чтобы указать используемый формат документации, для этого вместо установки готового пакета нужно собрать порт самостоятельно. Ниже приводится пример построения и установки английской документации:

В порте имеется меню конфигурации, в котором можно указать нужный формат. По умолчанию выбирается HTML с разделителями, такой как на http://www.FreeBSD.org, а также PDF.

В примере ниже демонстрируется использование переменных для установки венгерской документации в PDF в указанный каталог:

Пакеты или порты документации обновляются согласно инструкциям в Установка приложений. порты и пакеты. Например, следующая команда выполняет обновление установленной документации на венгерском языке с помощью ports-mgmt/portmaster в режиме использования только готовых пакетов:

21.4. Использование ветви разработки

Во FreeBSD имеется две ветки разработки: FreeBSD-CURRENT и FreeBSD-STABLE.

В этом разделе даётся объяснение для каждой из них и их предназначение, а также рассказывается, как синхронизировать систему с любой из этих веток.

21.4.1. Использование FreeBSD-CURRENT

FreeBSD-CURRENT является «передним краем» разработки FreeBSD и предназначена для пользователей с высокой технической грамотностью. Менее продвинутым пользователям, также желающим отслеживать ветку разработки, следует использовать FreeBSD-STABLE.

FreeBSD-CURRENT обозначает последнюю версию исходных текстов FreeBSD и включает в себя незавершённые работы, экспериментальные изменения и переходные механизмы, которые могут отсутствовать в следующем официальном релизе. Хотя многие разработчики FreeBSD выполняют компиляцию исходных текстов FreeBSD-CURRENT ежедневно, бывают периоды, когда исходные тексты могут не компилироваться. Обычно такие проблемы решаются сразу по мере возможности, но всё же выбор точки синхронизации исходных текстов является определяющим фактором, содержит ли FreeBSD-CURRENT новую функциональность или же мину замедленного действия.

FreeBSD-CURRENT предназначена для трёх основных групп:

Члены сообщества FreeBSD, активно работающие над некоторой частью дерева исходных текстов.

Члены сообщества FreeBSD, которые являются активными тестерами. Они тратят свое время на исправление проблем, вносят важные предложения по изменениям и общему развитию FreeBSD, присылают патчи.

Пользователи, которые хотят быть в курсе изменений, используют текущие исходные тексты для ознакомительных целей либо же иногда высказывают замечания или предоставляют собственный код.

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

Чтобы отслеживать изменения во FreeBSD-CURRENT:

Подпишитесь на списки рассылки Список рассылки, посвящённый обсуждению FreeBSD-CURRENT и Список рассылки сообщений об изменениях в репозитории SVN для ветки head/-current дерева исходных текстов. Это необходимо для того, чтобы получать сообщения и важные бюллетени относительно текущего состояния FreeBSD-CURRENT.

Список рассылки Список рассылки сообщений об изменениях в репозитории SVN для ветки head/-current дерева исходных текстов содержит записи из журнала коммитов по каждому изменению, а также сопутствующую информацию о возможных побочных эффектах.

Чтобы подписаться на эти списки рассылки, перейдите по ссылке http://lists.freebsd.org/mailman/listinfo, щёлкните на нужном списке и следуйте дальнейшим инструкциям. Для того чтобы отслеживать изменения всего дерева исходных текстов, а не только FreeBSD-CURRENT, подпишитесь на Список рассылки сообщений об изменениях в репозитории SVN для всего дерева исходных текстов (за исключением user и projects ).

Пользователи с очень медленным или ограниченным подключением могут рассматривать использование CTM, который описывается в Использование CTM, однако этот способ является менее надёжным по сравнению с рекомендуемым способом синхронизации исходных текстов посредством svn.

Вследствие больших размеров репозитория некоторые пользователи для ознакомления или изготовления патчей выбирают частичную загрузку. Тем не менее, для компиляции операционной системы из исходных текстов требуется загрузить FreeBSD-CURRENT полностью, а не только лишь выбранные части.

Перед началом компиляции FreeBSD-CURRENT внимательно прочтите файл /usr/src/Makefile и следуйте инструкциям в Пересборка мира. Список рассылки, посвящённый обсуждению FreeBSD-CURRENT и /usr/src/UPDATING позволят быть в курсе прочих процедур, которые иногда бывают необходимы в процессе перехода к следующему релизу.

Будьте активным участником! Пользователям FreeBSD-CURRENT предлагается высказывать свои соображения по улучшению или исправлению ошибок. Предложения, к которым прилагается код, всегда приветствуются!

21.4.2. Использование FreeBSD-STABLE

FreeBSD-STABLE является веткой разработки, из которой выпускаются основные релизы. Изменения в этой ветке происходят с меньшей скоростью и в предположении, что они сперва были проверены во FreeBSD-CURRENT. При этом она остаётся веткой разработки, и в любой момент времени исходные тексты FreeBSD-STABLE могут оказаться не готовы для обычного использования. Это просто другая ветка разработки, не предназначенная для конечных пользователей. Пользователям, у которых нет возможности заниматься тестированием, следует использовать самый последний выпуск FreeBSD.

Тем, кто заинтересован процессом разработки FreeBSD или желает поучаствовать, особенно поскольку от этого зависит следующий релиз FreeBSD, стоит отслеживать FreeBSD-STABLE.

Хотя ветка FreeBSD-STABLE должна всегда компилироваться и работать, это невозможно гарантировать. Поскольку гораздо больше людей работает с FreeBSD-STABLE, неудивительно, что в FreeBSD-STABLE иногда обнаруживаются ошибки и всплывают непредвиденные ситуации, которые не проявляли себя в FreeBSD-CURRENT. По этим причинам не рекомендуется слепо использовать FreeBSD-STABLE. Особенно важно не обновлять какие-либо сервера, находящиеся в эксплуатации, до FreeBSD-STABLE без тщательного тестирования кода в среде разработки.

Чтобы отслеживать изменения во FreeBSD-STABLE:

Подпишитесь на список рассылки Список рассылки, посвящённый обсуждению FreeBSD-STABLE;, чтобы быть в курсе о зависимостях процесса компиляции, которые могут появиться во FreeBSD-STABLE или любых других проблемах, требующих особого внимания. Также в этом списке рассылки разработчики делают объявления о спорных исправлениях или добавлениях, давая пользователям возможность высказать свое мнение о возможных тонких моментах.

Подпишитесь на список рассылки svn, соответствующий используемой ветви. Например, при использовании 9-STABLE следует подписаться на Список рассылки сообщений об изменениях в репозитории SVN для ветки 9-stable дерева исходных текстов. Этот список рассылки содержит записи из журнала коммитов по каждому изменению, а также сопутствующую информацию о возможных побочных эффектах.

Чтобы подписаться на эти списки рассылки, перейдите по ссылке http://lists.freebsd.org/mailman/listinfo, щёлкните на нужном списке, и следуйте дальнейшим инструкциям. Для того чтобы отслеживать изменения всего дерева исходных текстов, подпишитесь на Список рассылки сообщений об изменениях в репозитории SVN для всего дерева исходных текстов (за исключением user и projects ).

Чтобы установить новую систему FreeBSD-STABLE, установите самый последний релиз FreeBSD-STABLE, загрузив его с зеркалирующих сайтов FreeBSD или используйте ежемесячную стандартную сборку FreeBSD-STABLE. Обратитесь к www.freebsd.org/snapshots для получения дополнительной информации о снэпшотах.

Чтобы скомпилировать новую или обновить существующую систему FreeBSD до FreeBSD-STABLE, используйте svn для загрузки исходных текстов нужной ветки. Имена веток вида stable/9 перечислены на странице www.freebsd.org/releng. При отсутствии надёжного Интернет-соединения можно воспользоваться CTM (Использование CTM).

Перед началом компиляции или обновления до FreeBSD-STABLE внимательно прочтите файл /usr/src/Makefile и следуйте инструкциям в Пересборка мира. Список рассылки, посвящённый обсуждению FreeBSD-STABLE; и /usr/src/UPDATING позволят быть в курсе прочих процедур, которые иногда бывают необходимы в процессе перехода к следующему релизу.

21.5. Синхронизация исходных текстов

Имеются различные способы синхронизации с исходными текстами FreeBSD. В этом разделе сравниваются основные из них, Subversion и CTM.

Если пользователь случайно уничтожил часть своего архива, Subversion обнаружит и перестроит повреждённую часть. CTM этого не делает, поэтому если пользователь удалил часть дерева исходных текстов и не имеет архивной копии, то нужно будет начать с самого начала (с последнего «базового дельта-файла»), перестроив всё с помощью CTM.

21.6. Пересборка мира

После того, как локальное дерево исходных текстов было синхронизировано с некоторой версией FreeBSD (FreeBSD-STABLE или FreeBSD-CURRENT), его можно использовать для перестроения системы. Этот процесс известен как перестроение мира.

Перед перестроением мира убедитесь в выполнении следующих действий:

Procedure: Перед тем как приступать к построению мира

Сохраните резервную копию всех важных данных на другую систему или съёмный носитель, проверьте её целостность и держите под рукой загрузочный носитель. Невозможно переоценить важность создания резервной копии системы до начала перестроения системы. Хотя перестроение системы является простой задачей, неизбежно возникают ситуации, при которых ошибки в исходных текстах приводят к тому, что система перестаёт загружаться. Возможно, вам никогда не придётся этим воспользоваться, но, постучав по дереву, всегда лучше подстраховаться.

Проверьте последние сообщения в списке рассылки Список рассылки, посвящённый обсуждению FreeBSD-STABLE; или Список рассылки, посвящённый обсуждению FreeBSD-CURRENT (в зависимости от отслеживаемой ветки). Будьте в курсе любых известных проблем, и тех систем, которые они затрагивают. В случае возникновения подобной проблемы, дождитесь сообщения о том, что эта проблема решена. После этого повторите синхронизацию исходных текстов для получения необходимого исправления.

21.6.1. Обзор процесса

Процесс построения мира подразумевает переход с более старой версии FreeBSD с использованием исходных текстов более новой версии, которые были получены согласно инструкциям в Синхронизация исходных текстов.

Во FreeBSD термин «world» обозначает ядро, исполняемые файлы основой системы, библиотеки, файлы для программирования и встроенный компилятор. Имеет значение порядок, при котором эти компоненты собираются и устанавливаются.

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

Новый мир может зависеть от особенностей нового ядра, поэтому новое ядро должно быть установлено до установки нового мира. Старый мир может работать неправильно на новом ядре, поэтому новый мир должен быть установлен сразу после установки нового ядра.

Перед установкой нового мира могут потребоваться изменения в конфигурации, но некоторые из изменений могут не работать со старым миром. Следовательно, используются два разных этапа обновления конфигурации. В основной части процесса обновления выполняется только замена или добавление файлов. Существующие файлы при этом не удаляются. Поскольку это может повлечь проблемы, в /usr/src/UPDATING содержится информация о том, какие из файлов и на каком шаге нужно удалить вручную.

Исходя из этих соображений в следующей процедуре описана рекомендуемая последовательность обновления.

Procedure: Обзор процесса построения мира

Команды для построения мира должны запускаться в указанном здесь порядке. В этом разделе даётся краткое описание назначения каждой из команд.

Если процесс построения мира уже запускался ранее на этой системе, то в /usr/obj могла остаться копия предыдущей сборки. Удалите этот каталог для ускорения процесса построения нового мира и возможного сокращений работы по разрешению зависимостей.

Переведите систему в однопользовательский режим для минимизации проблем при обновлении уже работающих исполняемых файлов. Это также уменьшит вероятность возникновения проблем при работе старого мира на новом ядре.

После перехода в однопользовательский режим, запустите эти команды, если в системе используется UFS:

Если используется ZFS, запустите другие две команды. В данном примере zpool называется zroot :

Дополнительно: Если желаемая картография клавиатуры отличается от используемой по умолчанию US English, её можно изменить с помощью kbdmap(1):

Затем, если часы CMOS установлены на местное время (это так, если вывод date(1) не содержит правильное время и часовой пояс), выполните:

Обновите остальные файлы конфигурации.

Удалите устаревшие файлы. Это важно, так как в противном случае они могут вызвать проблемы.

Теперь нужна полная перезагрузка системы для того, чтобы загрузить новое ядро и мир с использованием новых конфигурационных файлов.

Убедитесь, что перед удалением старых версий библиотек все установленные порты были пересобраны согласно инструкциям в Обновление портов. По завершению удалите все старые библиотеки во избежание конфликтов с их новыми версиями. За подробным описанием этого шага обратитесь к Удаление устаревших файлов и библиотек.

Если для системы доступно окно обслуживания, обдумайте возможность компиляции системы в однопользовательском режиме вместо использования для этого многопользовательского режима с переводом в однопользовательский режим для установки. Переустановка системы затрагивает множество важных системных файлов, все стандартные системные исполняемые файлы, библиотеки и заголовочные файлы. Замена этих файлов на работающей системе (в частности, используемых в данный момент пользователями) может привести к неприятностям.

21.6.2. Файлы конфигурации

В процессе построения мира используется несколько файлов конфигурации.

21.6.3. Переменные и цели выполнения

Общий формат использования make :

Это соответствует настройке в /etc/make.conf :

target указывает программе make на то, что нужно сделать, а Makefile определяет доступные цели. Некоторые цели используются в процессе построения для разбиения его на этапы.

Разделение опций удобно по двум причинам. Во-первых, это позволяет выполнять сборку, не затрагивая компоненты рабочей системы. По этой причине можно спокойно запустить buildworld на машине, работающей в многопользовательском режиме. Но цель installworld всё же рекомендуется запускать в однопользовательском режиме.

Во-вторых, это позволяет использовать монтирование по NFS для обновления многих машин по сети согласно описанию в Отслеживание исходных текстов для нескольких машин.

Используйте следующую команду на машине с одним CPU, чтобы иметь до 4 одновременно работающих процессов. Опубликованные в списке рассылки практические замеры показывают, что в среднем это даёт наибольший выигрыш в производительности.

Например, если выполнялась эта команда:

то результат её выполнения должен устанавливаться командой:

21.6.4. Объединение файлов конфигурации

Затем mergemaster выдаст каждый файл, в котором есть изменения, с вариантами действий: удалить новый файл, упоминаемый здесь как временный, установить временный файл в его неизменённом виде, объединить временный файл с установленным на данный момент, либо просмотреть результат ещё раз.

Выбор установки немодифицированного временного файла приведёт к замене текущего файла новым. Для большинства немодифицированных файлов это является подходящим вариантом.

Выбор варианта с объединением файла приведёт к вызову текстового редактора, содержащего текст обоих файлов. Файлы можно объединить, просматривая оба файла на экране и выбирая те части из обоих, которые подходят для окончательного варианта. При сравнении файлов нажатие l выбирает содержимое слева, нажатие r выбирает содержимое справа. В окончательном варианте будет файл, состоящий из обеих частей, который и будет установлен. Этот вариант обычно используется для файлов, настройки в которых изменялись пользователем.

Выбор повторного просмотра результатов выдаст разницу между файлами.

После того как утилита mergemaster закончит работу с системными файлами, она выдаст запрос относительно других параметров. Она может запросить перестроение файла паролей и завершится запросом на удаление оставшихся временных файлов.

21.6.5. Удаление устаревших файлов и библиотек

После выполнения make installworld и последующего mergemaster проверьте наличие устаревших файлов и библиотек:

Если были найдены какие-либо устаревшие файлы, их можно удалить с помощью следующей команды:

Аналогичного эффекта можно достичь, пропустив эти команды через yes :

Программы для проверки наличия зависимостей от совместно используемых библиотек включают в себя sysutils/libchk и sysutils/bsdadminscripts.

Устаревшие совместно используемые библиотеки могут конфликтовать с более новыми библиотеками, что приводит к сообщениям следующего вида:

Для решения этих проблем выясните, какой именно порт установил данную библиотеку:

Затем данный порт нужно удалить, пересобрать и переустановить. Для автоматизации этого процесса можно использовать ports-mgmt/portmaster. После того как все порты пересобраны и более не используют старые библиотеки, удалите эти старые библиотеки с помощью следующей команды:

21.6.6. Вопросы общего характера

Это зависит от характера изменения. Например, если svn показывает, что с момента последнего запуска были изменены только следующие файлы:

Некоторые пользователи перестраивают систему каждые две недели, позволяя изменениям накопиться за это время. Другие перестраивают только те вещи, которые менялись, и внимательно отслеживают все зависимости. Всё это зависит от того, как часто пользователь хочет делать обновление и отслеживает ли он FreeBSD-STABLE или FreeBSD-CURRENT.

Как правило, это говорит о проблемах с оборудованием. Построение системы является эффективным стресс-тестом для оборудования, в особенности памяти. Явным указателем на это является то, что при перезапуске make процедура построения прекращается в различные моменты времени.

Для исправления этой ошибки попробуйте заменить комплектующие машины, начиная с оперативной памяти, для определения сбоящей компоненты.

В этом каталоге содержатся все объектные файлы, которые создаются во время фазы компиляции. Обычно одним из первых шагов в процессе make buildworld является удаление этого каталога, чтобы начать заново. Сохранение /usr/obj после окончания имеет мало смысла, а его удаление освободит приблизительно 2 ГБ дискового пространства.

Могут ли быть продолжены прерванные процессы построения?

Это зависит от того, насколько далеко зашел процесс построения перед тем, как была обнаружена проблема. В общем случае процесс make buildworld строит новые копии необходимых инструментальных средств и системные библиотеки. Затем эти средства и библиотеки устанавливаются. Новые инструментальные средства и библиотеки затем используются для перестроения самих себя и повторно устанавливаются. Система в целом теперь перестраивается с новыми системными файлами.

На последней стадии выполнение этих команд является достаточно безопасным, поскольку они не отменяют работу предыдущего make buildworld :

Если в выводе make buildworld появляется такое сообщение:

то делать так вероятно достаточно безопасно.

Если такое сообщение не выводится, всегда лучше подстраховаться и запустить сборку с самого начала.

Ускорить процесс сборки мира может несколько действий. Например, весь процесс можно выполнять в однопользовательском режиме. Однако, это не позволит пользователям иметь доступ к системе, пока этот процесс не завершится.

Файловую систему с /usr/obj можно смонтировать с async для записи на диск в асинхронном режиме. В этом случае операции записи завершаются мгновенно, а сами данные записываются на диск через несколько секунд. Это позволяет писать кластеризованно, что может дать значительный прирост производительности.

Имейте в виду, что эта опция делает вашу файловую систему менее устойчивой. С этой опцией имеется больше шансов, что при перезагрузке машины после неожиданного сбоя при пропадании напряжения файловая система окажется в невосстановимом состоянии.

Скрупулезно проверьте, чтобы в вашем окружении не было мешающих остатков от предыдущих построений:

Да, команду make cleandir действительно нужно выполнять дважды.

21.7. Отслеживание исходных текстов для нескольких машин

Если нужно отслеживать одно и то же дерево исходных текстов на множестве машин, то загрузка кода и полное перестроение системы на каждой из них выглядит как ненужная трата ресурсов: дискового пространства, пропускной способности сети и процессорного времени. Решением является выделение одной машины, которая выполняет основной объём работы, в то время как остальные используют результаты работы посредством NFS. В этом разделе описывается именно этот метод. Для получения информации об использовании NFS обращайтесь в Network File System (NFS).

Выберите тестовую машину, которая будет выполнять проверку обновлений программного обеспечения, прежде чем они пойдут в работу. Это должна быть машина, которая может находиться в нерабочем состоянии достаточно долго. Это также может быть машина построения, но не обязательно.

Всем машинам в этом наборе для построения нужно смонтировать /usr/obj и /usr/src по NFS с машины построения. В случае нескольких наборов для построения каталог /usr/src должен находиться на одной машине построения и монтироваться на остальных по NFS.

Постройте ядро и всё окружение на машине построения так, как это описано в Переменные и цели выполнения, но ничего не устанавливайте на самой машине. Вместо этого, установите собранное ядро на тестовой машине. Для этого смонтируйте /usr/src и /usr/obj по NFS. Затем выполните команду shutdown now для перехода в однопользовательский режим, для того чтобы установить новое ядро и всё окружение, после чего выполните команду mergemaster обычным образом. После этих действий перезагрузитесь для возврата к обычному режиму работы в многопользовательском режиме.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *