Установка linux программ freebsd

Приветствую!
Возникла необходимость установки сервера 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-окружения, в котором эти файлы смогут корректно исполняться.

Читайте также:
Один или несколько проблем вызвали сбой программы установки 0x80070666

Пространство ядра

Для того чтобы научить ядро 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-версии коммерческих игр.

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

poll
Какой ОС вы пользуетесь?

« Июль 2023 »ПнВтСрЧтПтСбВс
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

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru