Приветствую!
Возникла необходимость установки сервера 1С на некоммерческую ОС. Принципиально на FreeBSD.
Естественно 1С-ка скомпилена только под вин, lin-rpm и lin-deb.
Что уже сделано: установлена поддержка линя в фри по хендбуку(https://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/linuxemu-lbc-install.html), установил из портов пакеты rpm и dpkg, добавил linprocfs.
При попытке установки пакетов rpm выдает такое:
# rpm -i —ignoreos —root /compat/linux —dbpath /var/lib/rpm *.rpm ошибка: Failed to resolve symbol syslog_hooks: Undefined symbol «nspr_use_zone_allocator» ошибка: ошибка чтения из файла 1C_Enterprise83-common-8.3.7-1970.x86_64.rpm
При попытке установки пакетов deb выдает такое:
# dpkg -i *.deb dpkg: ошибка: анализ файла <> около строки 0: end of file after field name »
Кто делал подобное, кто ставил любые другие линуксовые приложения на фри, прошу помочь.
З.Ы. Советы типа «паставьлиньинепарься» не предлагать. Древний пыльный в пятнах от слюней админов мануал с Лисяры не предлагать.
A Quick Installation Of FreeBSD 13.0
Спасибо сказали:
Bizdelnick Модератор Сообщения: 20366 Статус: nulla salus bello ОС: Debian GNU/Linux
Re: Эмуляция среды Linux в FreeBSD
Сообщение Bizdelnick » 19.05.2016 23:52
19.05.2016 22:14
установил из портов пакеты rpm и dpkg
Такое ощущение, что криво установили. rpm —version и dpkg —version хотя бы работают?
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |
Спасибо сказали:
AxelRich Сообщения: 10 ОС: 14.04
Re: Эмуляция среды Linux в FreeBSD
Сообщение AxelRich » 20.05.2016 01:40
19.05.2016 23:52
19.05.2016 22:14
установил из портов пакеты rpm и dpkg
Такое ощущение, что криво установили. rpm —version и dpkg —version хотя бы работают?
# rpm —version RPM версия 4.12.0.1
# dpkg —version Система управления пакетами Debian <>, версия 1.18.4 (freebsd-amd64). Это свободное программное обеспечение. См. условия распространения в Универсальной общественной лицензии GNU версии 2 или более поздней. НИКАКИЕ гарантии не предоставляются.
Спасибо сказали:
Bizdelnick Модератор Сообщения: 20366 Статус: nulla salus bello ОС: Debian GNU/Linux
Re: Эмуляция среды Linux в FreeBSD
Сообщение Bizdelnick » 20.05.2016 11:08
А что говорят rpm -qi имя-пакета.rpm и dpkg -I имя-пакета.deb ?
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |
FreeBSD — installing Linux apps (Brave browser, Sublime), VS Code, Wine, and VirtualBox
Спасибо сказали:
AxelRich Сообщения: 10 ОС: 14.04
Re: Эмуляция среды Linux в FreeBSD
Сообщение AxelRich » 20.05.2016 12:40
20.05.2016 11:08
А что говорят rpm -qi имя-пакета.rpm и dpkg -I имя-пакета.deb ?
# rpm -qi 1C_Enterprise83-common-8.3.7-1970.x86_64.rpm пакет 1C_Enterprise83-common-8.3.7-1970.x86_64.rpm не установлен
# dpkg -I 1c-enterprise83-common_8.3.7-1970_amd64.deb новый пакет debian, версия 2.0. размер 1608018 байт(а): управляющий архив длиной 323 байт(а). tar: Option —warning=no-timestamp is not supported Usage: List: tar -tf Extract: tar -xf Create: tar -cf [filenames. ] Help: tar —help dpkg-deb: ошибка: подпроцесс tar возвратил код ошибки 1
Спасибо сказали:
Bizdelnick Модератор Сообщения: 20366 Статус: nulla salus bello ОС: Debian GNU/Linux
Re: Эмуляция среды Linux в FreeBSD
Сообщение Bizdelnick » 20.05.2016 12:44
С rpm напутал, надо rpm -qip 1C_Enterprise83-common-8.3.7-1970.x86_64.rpm
С dpkg проблема, видимо, в том, что он не дружит с фряшным tar.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще |
в течение (часа) новичок нюанс по умолчанию |
приемлемо проблема пробовать трафик |
Спасибо сказали:
AxelRich Сообщения: 10 ОС: 14.04
Re: Эмуляция среды Linux в FreeBSD
Сообщение AxelRich » 20.05.2016 13:24
20.05.2016 12:44
С rpm напутал, надо rpm -qip 1C_Enterprise83-common-8.3.7-1970.x86_64.rpm
С dpkg проблема, видимо, в том, что он не дружит с фряшным tar.
Источник: unixforum.org
Установка linux программ freebsd
Сейчас 2006 год. 125 метров? — да тьфу, копейки.
[/path/to/linux_binary/binary_executedfile]
libc.so.6 libc.so.1
В эту сторону не смотрел к сожалению. Посмотрю на досуге. Спасибо.
Но всё-таки две libc.so.6 в системе не есть гут 🙁
Набор бекапируемых систем:
Solaris 9 + Oracle
SunOs 5.9 + Oracle
25 серверов Win2000, Win2003 на половине которых стоит MSSQL.
5 серверов FreeBSD под разные задачи.
2 аппаратных Firewall от ISS на Линуксе 2.4.18.
Exchange и прочая шняга.
Из бекапного оборудования 2 двухприводные библиотеки DELL 132T.
При условии того, что Arcserve эти библиотеки в упор не видит, NTBackup просто напросто в них заблудится.
из задач бекапирования: snapshot файловой системы с открытыми файлами, snapshot systemstate, snapshot MSSQL + Oracle, файловые шары в огромном количестве и прочая фигня типа шифрованных данных.
> Из бекапного оборудования 2 двухприводные библиотеки DELL 132T.
Источник: www.opennet.ru
» Статьи » Все об эмуляции Linux во FreeBSD
Несмотря на то что современная FreeBSD достаточно популярна и хорошо подходит для применения в самых различных сферах: от высоконагруженных серверов до домашних компьютеров, она все же уступает Linux в одном немаловажном отношении — доступности программного обеспечения. Разработчики коммерческого ПО неохотно портируют свои продукты во FreeBSD, останавливаясь на ее гораздо более популярном конкуренте. К счастью, есть выход — эмуляция Linux.
Как это работает
Перед тем как приступать к настройке, мы посвятим несколько минут изучению внутренней структуры и механизмов работы эмулятора Linux. Это нужно для того, чтобы в случае возникновения ошибки или каких-либо трудностей ты смог правильно идентифицировать и устранить проблему.
Во-первых, эмуляция Linux — это вовсе не эмуляция, а имитация, прослойка, которая позволяет FreeBSD выдавать себя за Linux. Несмотря на то что почти все серьезные UNIX-подобные операционные системы совместимы между собой на уровне API (Application Programming Interface) и следуют стандарту POSIX, бинарный интерфейс (ABI — Application Binary Interface) этих ОС в большинстве случаев не совпадает. Например, FreeBSD использует Си-конвенцию системных вызовов, которая предусматривает передачу аргументов через стек, в то время как Linux требует, чтобы аргументы системных вызовов передавались в регистрах общего назначения. Кроме того, наборы системных вызовов Linux и FreeBSD в некоторых местах не совпадают.
Если исходный код программы доступен и написан с соблюдением общепринятых стандартов (в первую очередь POSIX), то не составит труда пересобрать программу для конкретной операционной системы (о совместимости ABI позаботится компилятор и низкоуровневые библиотеки), но что делать, если доступ к исходному коду закрыт? На этот случай во FreeBSD и других BSD-системах предусмотрен уровень совместимости, позволяющий операционной системе имитировать ABI другой UNIX-подобной ОС. Благодаря этому уровню «чужие» программы даже не догадываются о том, что их исполнение происходит в другой операционной системе.
Если мы рассмотрим процесс загрузки и исполнения бинарного файла Linux во FreeBSD подробнее, то увидим следующее. Прочитав заголовок исполняемого файла, FreeBSD найдет в нем специальную метку, говорящую о том, что это бинарный файл Linux, и активизирует уровень совместимости, который предоставит созданному процессу таблицу системных вызовов, совместимую с Linux. При этом сам процесс будет помещен в chroot-окружение (/compat/linux), содержащее копию среды Linux (то есть все, что может потребоваться программе во время работы, и в первую очередь библиотеки). Исполняясь в этой среде, процесс сможет обращаться к системным вызовам, загружать библиотеки, читать/писать файлы и делать все, что позволит ОС.
Несколько лет назад для запуска программ Linux во FreeBSD от пользователя требовалось пометить исполняемый файл специальным флагом (команда «brandelf -t Linux файл»), чтобы ядро смогло определить, что запускается бинарный файл Linux, и активировать режим совместимости. Современные версии компиляторов выставляют такую метку самостоятельно, и необходимость в этой процедуре возникает только в том случае, если пользователь запускает очень древнюю программу.
Настройка
Настройку двоичной совместимости с Linux условно можно разделить на два этапа. Первый — это конфигурирование ядра таким образом, чтобы научить его правильно обрабатывать исполняемые файлы, собранные для Linux. А второй — установка Linux-окружения, в котором эти файлы смогут корректно исполняться.
Пространство ядра
Для того чтобы научить ядро FreeBSD понимать исполняемые файлы Linux, достаточно подгрузить модуль linux.ko (kldload linux), содержащий все необходимые обработчики и альтернативную таблицу системных вызовов. После этого операционная система фактически будет готова к принятию «чужого» кода. Для «закрепления результата» следует добавить строку « linux_load=»YES» » в /boot/loader.conf (загрузка одновременно с ядром), либо « linux_enable=»YES» » в /etc/rc.conf (загрузка во время инициализации системы).
Поклонники монолитной модели ядра могут избежать необходимости ручной загрузки модуля, просто включив код совместимости в ядро. Конфигурационный файл ядра должен содержать следующие строки:
Если сборка будет происходить для архитектуры amd64, то вместо COMPAT_LINUX следует указать строку COMPAT_LINUX32. Последние две строки указывают на то, что код Linux-реализаций файловых систем proc и sys также должен быть включен в ядро. Делать это не обязательно, каждая из них может быть собрана модулем.
На этом настройка ядра заканчивается, и мы переходим к конфигурированию Linux-окружения.
Пространство пользователя
Как уже было сказано ранее, исполнение бинарных файлов Linux происходит в изолированном окружении, которое располагается в каталоге /compat/linux. Чтобы программы могли работать в таком окружении, им требуется доступ ко всем необходимым библиотекам, конфигурационным файлам и специальным файлам, вроде тех, что находятся в каталоге /proc. Есть несколько способов обеспечить наличие этих файлов, мы рассмотрим их все.
Вариант первый. Классический
Первый и самый правильный прием, рекомендуемый разработчиками FreeBSD, заключается в установке окружения через коллекцию портов. Существует несколько портов, воссоздающих окружение времени исполнения различных дистрибутивов Linux. В современных версиях FreeBSD средой исполнения по умолчанию является набор пакетов из дистрибутива Fedora Core 4 (emulators/linux_base-fc4), также доступны коллекции пакетов из дистрибутива Gentoo 2006.0 (linux_base-gentoo-stage1, linux_base-gentoo-stage2 и linux_base-gentoo-stage3). По большому счету неважно, какой из них использовать. Необходимость в переключении на окружение другого дистрибутива может возникнуть только в случае, если программа откажется работать в среде, установленной в данный момент.
В случае если Linux-окружение не было установлено во время инсталляции операционной системы, необходимо воспользоваться командой pkg_add /cdrom/packages/All/linux_base-fc-4_9.tbz (имя пакета может отличаться в зависимости от версии FreeBSD), либо пройти в каталог /usr/ports/emulators/linux_base-fc4 и набрать «make install clean». После того как одна из этих операций будет проделана, каталог /compat/linux превратится в локальную версию дистрибутива Linux.
Теперь необходимо обеспечить доступ к виртуальным файловым системам, без этого действия некоторые программы Linux откажутся работать. Открываем файл /etc/fstab и добавляем в него следующие строки:
none /compat/linux/proc linprocfs rw 0 0
none /compat/linux/sys linsysfs rw 0 0
none /compat/linux/dev devfs rw 0 0
Первые две строки указывают на то, что к каталогам proc и sys, находящимся внутри окружения Linux, необходимо подключить Linux-версии файловых систем procfs и sysfs. Последняя же строка говорит о том, что к каталогу dev также должна быть примонтирована родная файловая система devfs. Это может показаться абсурдом, так как практически ни один специальный файл этого каталога не совпадает по имени у FreeBSD и Linux. На самом деле, файловая система devfs нужна только для того, чтобы Linux-программы смогли выводить звук, ведь интерфейс OSS, используемый в обеих операционных системах, является стандартом и одинаков в Linux и FreeBSD.
После того как операция по модификации файла /etc/fstab будет закончена, набираем «mount –a», чтобы изменения вступили в силу. Это все, теперь внутри твоей FreeBSD поселился самый настоящий Linux. Ты даже можешь переместиться в него, набрав от имени суперпользователя команду chroot /compat/linux /bin/bash. Все программы Linux теперь должны запускаться и корректно работать.
Это относится не только к простым программам, вроде xcalc, но и к комплексным, вроде Quake4 или UT2004. При этом гарантируется, что программа будет работать с такой скоростью, как если бы она была запущена в настоящем Linux.
Вариант второй. Грязный
Второй вариант настройки среды исполнения заключается в ручном копировании необходимых файлов в каталог /compat/linux, без использования коллекции портов или пакетов. Достоинство подхода в том, что он не требует выкачивания из сети сотен мегабайт данных и позволяет использовать уже имеющееся дерево файлов Linux (например, взятое с дистрибутивного диска). Описывать способ нет смысла, потому что подробности совершаемых операций зависят от дистрибутива Linux и не универсальны.
В общем случае все, что требуется сделать, — это скопировать базовый комплект дистрибутивных пакетов и распаковать их в каталог /compat/linux. Это не так трудно, как кажется на первый взгляд. Следует установить FreeBSD-версию пакетного менеджера подопытного дистрибутива (например, archivers/rpm4 или archivers/dpkg) и с его помощью накатить нужные пакеты. Впоследствии недостающие пакеты можно добавить, используя уже родные Linux-версии этих программ:
Установка дополнительных пакетов
Red Hat/Fedora Core
# /compat/linux/bin/rpm -ihv —root=/compat/linux пакет.rpm
Debian/Ubuntu
# /compat/linux/usr/bin/dpkg -i —root=/compat/linux пакет.dpkg
Вариант третий. Простой
Процесс создания среды исполнения существенно упростится, если дистрибутив Linux уже установлен на смежном разделе. В этом случае не потребуется даже копирование, останется только подключить Linux-раздел к каталогу /compat/linux, и среда исполнения готова. Конечно, чтобы использовать этот прием, придется расместить Linux на файловой системе, поддерживаемой FreeBSD хотя бы в режиме чтения.
Вариант четвертый. Радикальный
Четвертый и последний вариант довольно радикальный и издевательский по своей задумке. Он применим в тех случаях, когда необходимо обеспечить Linux-программе доступ к корневой файловой системе (например, если программа должна обращаться к «настоящей» версии каталога /etc).
Chroot-окружение, в которое помещается любой процесс Linux, не предоставляет такой возможности (в этом и заключается смысл песочницы). Но есть выход: можно просто создать ссылку /compat/linux, указывающую на корень ( rm -rf /compat/linux ln -s / /compat/linux ), и тогда chroot-окружение станет идентичным корню. Проблема только в том, что Linux-программы не смогут работать с библиотеками FreeBSD, им нужны их нативные версии. Просто скопировать эти библиотеки в корень не удастся по причине пересечения имен, поэтому следует переименовать их по определенной схеме (например, libc.so.6 в libc-linux.so.6). После этого в файл /etc/libmap.conf можно добавить такие строки:
И так для всех библиотек, требуемых программе. Сами же Linux-программы следует положить в каталог /home/username/linux, именно для него будет действовать приведенное переназначение имен. Описанный способ может показаться слишком грубым, но он действительно работает и может помочь в определенных обстоятельствах.
INFO
Для тех отважных юниксоидов, что идут в ногу с прогрессом и используют последний срез CVS седьмой версии FreeBSD, рекомендую переключить режим совместимости на имитацию ядра Linux версии 2.6.19: sysctl compat.linux.osrelease=2.6.19. Версия 2.4.2, имитируемая по умолчанию, уже не удовлетворяет потребностям современных Linux-программ.
Коллекция портов FreeBSD насчитывает несколько десятков так называемых Linux-портов. Чтобы найти их, находясь в каталоге /usr/ports, набери команду make search name=linux-.
Переменные sysctl
Существует три переменные ядра, напрямую относящиеся к уровню совместимости с Linux: compat.linux.osname — имя имитируемой операционной системы; compat.linux.osrelease — версия ядра Linux, стабильные версии FreeBSD поддерживают только совместимость с ядром версии 2.4.2 (во FreeBSD 7 была добавлена поддержка ядра 2.6.19); compat.linux.oss_version — версия интерфейса OSS (Open Sound System).
Развеиваем миф о драйверах nVidia
Среди пользователей широко распространено мнение о том, что фирменные драйверы nVidia для FreeBSD — это не что иное, как драйверы Linux, работающие в режиме совместимости с Linux. Это, конечно же, неправда, на данный момент FreeBSD способна имитировать только ABI Linux, а не постоянно изменяющийся интерфейс между ядром и драйверами. Модуль совместимости с Linux, который так «любят» драйверы nVidia, нужен только для того, чтобы позволить пользователю играть в Linux-версии коммерческих игр.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Источник: desktopbsd.ru