Джейсонрайан (как обычно) был прав в своем первоначальном комментарии.
Пакеты Arch должны быть максимально приближены к "ванильным". Теперь, хотя вы можете использовать rpmextract
или alien
, на самом деле нет веских причин для этого Итак. Что вы должны сделать, так это создать PKGBUILD
, который использует RPM в качестве исходного файла, а затем устанавливает все необходимое там, где оно должно быть в пакете ()
.Если вы не знаете, как это сделать, взгляните на некоторые пакеты в пользовательском репозитории ArchLinux ; есть много таких, которые делают похожие вещи.
Теперь, начиная с bsdtar
(экстрактор по умолчанию, используемый на sou rce файлы от makepkg
) поддерживает извлечение пакетов RPM без проблем, нет причин использовать rpmextract
- он добавляет зависимость make без добавления каких-либо реальных функций.
Некоторые материалы по теме из вики:
В Mac OS X нет таких пространств имен, как в Linux, но если вы хотите заблокировать работу в сети, похоже, вы можете использовать sandbox_init()
для получения аналогичного эффекта. Описание смотрите на справочной странице .
Существует два встроенных -профиля, которые, по-видимому, поддерживают вариант использования, аналогичный описанному вами :kSBXProfileNoInternet
, где сеть TCP/IP запрещена; и kSBXProfileNoNetwork
, где все сети на основе сокетов -запрещены. (Хотя последнее может быть ближе к тому, что здесь делает сетевое пространство имен Linux, первого может быть достаточно для ваших нужд.)
Обратите внимание, что эта функция задокументирована как устаревшая , и тем, кто хочет поместить приложение в песочницу, следует изучить функцию песочницы приложения . это также. Я не знаю, будет ли App Sandbox использовать тот же механизм (кода, который вы запускаете с платформы #ifdef
), поэтому я сначала предложил sandbox_init()
.