diff options
Diffstat (limited to 'documentation/content/ru/articles/linux-users/_index.adoc')
-rw-r--r-- | documentation/content/ru/articles/linux-users/_index.adoc | 446 |
1 files changed, 446 insertions, 0 deletions
diff --git a/documentation/content/ru/articles/linux-users/_index.adoc b/documentation/content/ru/articles/linux-users/_index.adoc new file mode 100644 index 0000000000..26b7765144 --- /dev/null +++ b/documentation/content/ru/articles/linux-users/_index.adoc @@ -0,0 +1,446 @@ +--- +authors: + - + author: 'John Ferrell' +copyright: '2008 The FreeBSD Documentation Project' +description: 'Этот документ предназначен для быстрого ознакомления с основами FreeBSD пользователей Linux® среднего и продвинутого уровня.' +tags: ["Quickstart", "guide", "Linux", "FreeBSD"] +title: 'Быстрое руководство по FreeBSD для пользователей Linux®' +trademarks: ["freebsd", "intel", "redhat", "linux", "unix", "general"] +--- + += Быстрое руководство по FreeBSD для пользователей Linux(R) +:doctype: article +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:source-highlighter: rouge +:experimental: +:images-path: articles/linux-users/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +:imagesdir: ../../../images/{images-path} +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[.abstract-title] +Аннотация + +Этот документ предназначен для быстрого ознакомления с основами FreeBSD +пользователей Linux(R) среднего и продвинутого уровня. + +''' + +toc::[] + +[[intro]] +== Введение + +В этом документе освещаются некоторые технические различия между FreeBSD и +Linux(R), чтобы пользователи Linux(R) среднего и продвинутого уровней могли +быстро ознакомиться с основами FreeBSD. + +Этот документ предполагает, что FreeBSD уже установлена. Для получения +помощи по процессу установки обратитесь к главе extref:{handbook}[Установка +FreeBSD, bsdinstall] Руководства FreeBSD. + +[[shells]] +== Стандартная оболочка + +Пользователи Linux(R) часто удивляются, обнаружив, что Bash не является +оболочкой по умолчанию в FreeBSD. На самом деле, Bash не включён в +стандартную установку. Вместо этого используется совместимая с Bourne shell +оболочка man:sh[1] в качестве оболочки пользователя по умолчанию. Оболочка +root — это man:tcsh[1] по умолчанию в FreeBSD 13 и более ранних версиях и +man:sh[1] в FreeBSD 14 и позднее. Оболочка man:sh[1] очень похожа на Bash, +но имеет гораздо меньший набор возможностей. Как правило, скрипты, +написанные для man:sh[1], будут работать в Bash, но обратное не всегда +верно. + +Однако Bash и другие оболочки доступны для установки через +extref:{handbook}[Коллекцию портов и пакетов FreeBSD, ports]. + +После установки другой оболочки используйте man:chsh[1], чтобы изменить +оболочку пользователя по умолчанию. Рекомендуется оставить оболочку +пользователя `root` без изменений, поскольку оболочки, не входящие в базовую +поставку, устанавливаются в [.filename]#/usr/local/bin#. В случае +возникновения проблемы файловая система, в которой находится +[.filename]#/usr/local/bin#, может быть не смонтирована. В такой ситуации у +`root` не будет доступа к своей оболочке по умолчанию, что помешает ему +войти в систему и устранить проблему. + +[[software]] +== Пакеты и порты: установка программ в FreeBSD + +FreeBSD предоставляет два метода установки приложений: бинарные пакеты и +скомпилированные порты. Каждый метод имеет свои преимущества: + +.Бинарные пакеты +* Быстрая установка по сравнению с компиляцией крупных приложений. +* Не требует понимания того, как компилировать программное обеспечение. +* Нет необходимости устанавливать компилятор. + +.Порты +* Возможность настройки параметров установки. +* Могут быть применены пользовательские патчи. + +Если установка приложения не требует дополнительной собственной настройки, +достаточно установить пакет. Собирайте порт, если приложению требуется +изменение параметров, заданных в пакетах по умолчанию. При необходимости +собственный пакет можно собрать из портов с помощью `make package`. + +Полный список всех доступных портов и пакетов можно найти +https://ports.freebsd.org[здесь]. + +[[packages]] +=== Пакеты + +Пакеты — это предварительно скомпилированные приложения, эквиваленты файлов +[.filename]#.deb# в системах на основе Debian/Ubuntu и файлов +[.filename]#.rpm# в системах на основе Red Hat/Fedora. Пакеты +устанавливаются с помощью `pkg`. Например, следующая команда устанавливает +Apache 2.4: + +[source, shell] +.... +# pkg install apache24 +.... + +Для получения дополнительной информации о пакетах обратитесь к разделу 4.4 +Руководства FreeBSD: extref:{handbook}ports/[Использование pkg для +управления бинарными пакетами, pkgng-intro]. + +[[ports]] +=== Порты + +Коллекция портов FreeBSD — это набор [.filename]#Makefile# и патчей, +специально адаптированных для установки приложений из исходного кода в +FreeBSD. При установке порта система загрузит исходный код, применит +необходимые патчи, скомпилирует код и установит приложение вместе с +требуемыми зависимостями. + +Коллекция портов, иногда называемая деревом портов, может быть установлена в +[.filename]#/usr/ports# с помощью +link:{handbook}mirrors/#git[Git]. Подробные инструкции по установке +Коллекции портов можно найти в extref:{handbook}ports/[разделе 4.5.1, +ports-using-installation-methods] Руководства FreeBSD. + +Для сборки порта перейдите в его каталог и запустите процесс сборки. В +следующем примере устанавливается Apache 2.4 из коллекции портов: + +[source, shell] +.... +# cd /usr/ports/www/apache24 +# make install clean +.... + +Преимущество использования портов для установки программного обеспечения +заключается в возможности настройки параметров установки. В этом примере +указано, что также должен быть установлен модуль mod_ldap: + +[source, shell] +.... +# cd /usr/ports/www/apache24 +# make WITH_LDAP="YES" install clean +.... + +Обратитесь к extref:{handbook}ports/[Использование коллекции портов, +ports-using] для получения дополнительной информации. + +[[startup]] +== Загрузка системы + +Многие дистрибутивы Linux(R) используют систему инициализации SysV, тогда +как FreeBSD использует традиционный BSD-стиль man:init[8]. В BSD-стиле +man:init[8] нет уровней запуска (run-levels), и файл +[.filename]#/etc/inittab# отсутствует. Вместо этого запуск системы +управляется сценариями man:rc[8]. При загрузке системы [.filename]#/etc/rc# +читает [.filename]#/etc/rc.conf# и [.filename]#/etc/defaults/rc.conf#, чтобы +определить, какие службы должны быть запущены. Указанные службы затем +запускаются путем выполнения соответствующих сценариев инициализации, +расположенных в [.filename]#/etc/rc.d/# и +[.filename]#/usr/local/etc/rc.d/#. Эти сценарии аналогичны сценариям, +расположенным в [.filename]#/etc/init.d/# в системах Linux(R). + +Скрипты, расположенные в [.filename]#/etc/rc.d/#, предназначены для +приложений, входящих в "базовую" систему, таких как man:cron[8], man:sshd[8] +и man:syslog[3]. Скрипты в [.filename]#/usr/local/etc/rc.d/# предназначены +для пользовательских приложений, таких как Apache и Squid. + +Поскольку FreeBSD разрабатывается как полноценная операционная система, +пользовательские приложения не считаются частью «базовой» +системы. Пользовательские приложения обычно устанавливаются с помощью +extref:{handbook}ports/[Пакетов или Портов, ports-using]. Чтобы отделить их +от базовой системы, пользовательские приложения устанавливаются в +[.filename]#/usr/local/#. Таким образом, исполняемые файлы пользовательских +приложений находятся в [.filename]#/usr/local/bin/#, конфигурационные файлы +— в [.filename]#/usr/local/etc/# и так далее. + +Сервисы включаются путем добавления соответствующей записи в файл +[.filename]#/etc/rc.conf#. Системные параметры по умолчанию находятся в +файле [.filename]#/etc/defaults/rc.conf#, а настройки по умолчанию +переопределяются параметрами из файла [.filename]#/etc/rc.conf#. Подробнее о +доступных параметрах можно узнать в man:rc.conf[5]. При установке +дополнительных приложений ознакомьтесь с сообщением установки, чтобы +определить, как включить связанные сервисы. + +Следующие записи в [.filename]#/etc/rc.conf# включают man:sshd[8], +активируют Apache 2.4 и указывают, что Apache должен запускаться с SSL. + +[.programlisting] +.... +# enable SSHD +sshd_enable="YES" +# enable Apache with SSL +apache24_enable="YES" +apache24_flags="-DSSL" +.... + +После включения службы в [.filename]#/etc/rc.conf# её можно запустить без +перезагрузки системы: + +[source, shell] +.... +# service sshd start +# service apache24 start +.... + +Если служба не была включена, её можно запустить из командной строки с +помощью `onestart`: + +[source, shell] +.... +# service sshd onestart +.... + +[[network]] +== Настройка сети + +Вместо общего идентификатора _ethX_, который используется в Linux(R) для +обозначения сетевого интерфейса, FreeBSD использует имя драйвера с +последующим числом. Следующий вывод из man:ifconfig[8] показывает два +сетевых интерфейса Intel(R) Pro 1000 ([.filename]#em0# и [.filename]#em1#): + +[source, shell] +.... +% ifconfig +em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + options=b<RXCSUM,TXCSUM,VLAN_MTU> + inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255 + ether 00:50:56:a7:70:b2 + media: Ethernet autoselect (1000baseTX <full-duplex>) + status: active +em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + options=b<RXCSUM,TXCSUM,VLAN_MTU> + inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255 + ether 00:50:56:a7:03:2b + media: Ethernet autoselect (1000baseTX <full-duplex>) + status: active +.... + +IP-адрес может быть назначен интерфейсу с помощью man:ifconfig[8]. Чтобы +настройки сохранялись после перезагрузки, конфигурация IP должна быть +указана в [.filename]#/etc/rc.conf#. Следующие записи в +[.filename]#/etc/rc.conf# задают имя хоста, IP-адрес и шлюз по умолчанию: + +[.programlisting] +.... +hostname="server1.example.com" +ifconfig_em0="inet 10.10.10.100 netmask 255.255.255.0" +defaultrouter="10.10.10.1" +.... + +Используйте следующие записи для настройки интерфейса через DHCP: + +[.programlisting] +.... +hostname="server1.example.com" +ifconfig_em0="DHCP" +.... + +[[firewall]] +== Firewall + +FreeBSD не использует Linux(R) IPTABLES для своего межсетевого +экрана. Вместо этого FreeBSD предлагает выбор из трёх межсетевых экранов на +уровне ядра: + +* extref:{handbook}[PF, firewalls-pf] +* extref:{handbook}[IPFILTER, firewalls-ipf] +* extref:{handbook}[IPFW, firewalls-ipfw] + +PF разработан проектом OpenBSD и портирован в FreeBSD. PF был создан как +замена для IPFILTER, и его синтаксис схож с синтаксисом IPFILTER. PF может +использоваться совместно с man:altq[4] для обеспечения функций QoS. + +Этот пример записи PF разрешает входящий SSH: + +[.programlisting] +.... +pass in on $ext_if inet proto tcp from any to ($ext_if) port 22 +.... + +IPFILTER — это приложение для межсетевого экрана, разработанное Дарреном +Ридом. Оно не является специфичным для FreeBSD и было портировано на +несколько операционных систем, включая NetBSD, OpenBSD, SunOS, HP/UX и +Solaris. + +Синтаксис IPFILTER для разрешения входящего SSH: + +[.programlisting] +.... +pass in on $ext_if proto tcp from any to any port = 22 +.... + +IPFW — это межсетевой экран, разработанный и поддерживаемый FreeBSD. Он +может быть использован совместно с man:dummynet[4] для обеспечения +возможностей управления трафиком и имитации различных типов сетевых +соединений. + +Синтаксис IPFW для разрешения входящего SSH будет следующим: + +[.programlisting] +.... +ipfw add allow tcp from any to me 22 in via $ext_if +.... + +[[updates]] +== Обновление FreeBSD + +Существует два метода обновления системы FreeBSD: из исходного кода или +бинарные обновления. + +Обновление из исходного кода — это наиболее сложный метод обновления, но он +предоставляет наибольшую гибкость. Процесс включает синхронизацию локальной +копии исходного кода FreeBSD с репозиторием FreeBSD Git. После того как +локальный исходный код обновлён, можно скомпилировать новую версию ядра и +пользовательского пространства. + +Двоичные обновления аналогичны использованию `yum` или `apt-get` для +обновления системы Linux(R). В FreeBSD, man:freebsd-update[8] может быть +использован для получения и установки новых двоичных обновлений. Эти +обновления могут быть запланированы с помощью man:cron[8]. + +[NOTE] +==== +При использовании man:cron[8] для планирования обновлений используйте +`freebsd-update cron` в man:crontab[1], чтобы снизить вероятность +одновременного скачивания обновлений большим количеством машин: + +[.programlisting] +.... +0 3 * * * root /usr/sbin/freebsd-update cron +.... + +==== + +Для получения дополнительной информации об обновлениях исходного кода и +бинарных обновлениях обратитесь к extref:{handbook}cutting-edge/[главе об +обновлениях, updating-upgrading-freebsdupdate] в Руководстве FreeBSD. + +[[procfs]] +== procfs: ушёл, но не забыт + +В некоторых дистрибутивах Linux(R) можно посмотреть файл +[.filename]#/proc/sys/net/ipv4/ip_forward#, чтобы определить, включена ли +IP-маршрутизация. В FreeBSD вместо этого используется man:sysctl[8] для +просмотра этого и других системных параметров. + +Например, используйте следующую команду, чтобы определить, включена ли +IP-переадресация в системе FreeBSD: + +[source, shell] +.... +% sysctl net.inet.ip.forwarding +net.inet.ip.forwarding: 0 +.... + +Используйте `-a` для вывода всех системных настроек: + +[source, shell] +.... +% sysctl -a | more +.... + +Если приложению требуется procfs, добавьте следующую запись в +[.filename]#/etc/fstab#: + +[source, shell] +.... +proc /proc procfs rw,noauto 0 0 +.... + +Добавление `noauto` предотвратит автоматическое монтирование +[.filename]#/proc# при загрузке. + +Чтобы подключить файловую систему без перезагрузки: + +[source, shell] +.... +# mount /proc +.... + +[[commands]] +== Распространенные команды + +Некоторые эквиваленты распространённых команд приведены ниже: + +[.informaltable] +[cols="1,1,1", frame="none", options="header"] +|=== +| Команда Linux(R) (Red Hat/Debian) +| Эквивалент FreeBSD +| Назначение + +|`yum install _package_` / `apt-get install _package_` +|`pkg install _package_` +|Установить пакет из удалённого репозитория + +|`rpm -ivh _package_` / `dpkg -i _package_` +|`pkg add _package_` +|Установить локальный пакет + +|`rpm -qa` / `dpkg -l` +|`pkg info` +|Список установленных пакетов + +|`lspci` +|`pciconf` +|Перечислить устройства PCI + +|`lsmod` +|`kldstat` +|Перечислить загруженные модули ядра + +|`modprobe` +|`kldload` / `kldunload` +|Загрузка/выгрузка модулей ядра + +|`strace` +|`truss` +|Трассировка системных вызовов +|=== + +[[conclusion]] +== Заключение + +Этот документ предоставил обзор FreeBSD. Для более детального изучения этих +тем, а также многих других, не рассмотренных в данном документе, обратитесь +к extref:{handbook}[Руководству FreeBSD]. |