Установка 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.

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

Источник: 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-версии коммерческих игр.

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

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