Как скомпилировать, когда на компьютере недостаточно памяти?

У меня есть низкоуровневый VPS, который настроен на ZNC как вышибала IRC, и он работает очень хорошо, он имеет около 128 МБ флеш-памяти, что НЕ ДОЛЖНО компилировать один из модулей, которые я хочу использовать znc-push .

После попытки скомпилировать виртуальный бокс и отправить файл, я получаю сообщение об ошибке «недопустимый заголовок ELF» при попытке загрузить модуль вверх. Как я могу скомпилировать этот модуль удаленно, а затем отправить его? У него достаточно памяти для его запуска, но он не будет скомпилировать его, я посмотрел на использование distcc, но я не могу найти никакой надежной информации о том, как его использовать.

Кроме того, я попытался создать файл подкачки, но это не разрешено / возможно с этим VPS.

One Solution collect form web for “Как скомпилировать, когда на компьютере недостаточно памяти?”

Очевидно, что такая машина не имеет ресурсов и не предназначена для целей развития.

Для таких задач вы не можете компилировать слепо в собственной архитектуре своего Debiam, что явно чуждой архитектуры / двоичных файлов для вашего небольшого сервера.

Вам необходимо построить кросс-компилятор (крест) toolchain на удаленном компьютере / в вашем Debian 7, который компилирует источники, генерирующие двоичные файлы для целевой архитектуры.

Обычно крест-цепочка может иметь определенные шаги для установки и может потребоваться некоторые настройки для вашей среды.

Кросс-компилятор – это компилятор, способный создавать исполняемый код для платформы, отличной от той, на которой работает компилятор.

Кросс-компилятор необходим для компиляции для нескольких платформ с одного компьютера. Платформа может быть неосуществима для работы компилятора, например, для микроконтроллера встроенной системы, поскольку эти системы не содержат операционной системы.

В качестве примера,

Как создать кросс-компилятор GCC

В качестве другого примера я однажды установил кросс-компилятор в Debian для NetBSD / ARM; или, например, если мне нужны бинарные файлы для моего openwrt / 32-битного MIPS, мне нужно получить среду кросс-компиляции, которая соответствует uClib и 32-разрядному MIPS. Мой маршрутизатор на базе MIP имеет только 96 МБ ОЗУ и 128 МБ (или 256 МБ ?) вспышки.

Говоря об этом, некоторые встроенные / небольшие среды маршрутизатора используют uClib вместо glibc для экономии места, так как uClib намного меньше, чем glibc.

uClibc – небольшая стандартная библиотека C, предназначенная для операционных систем на базе ядра Linux для встроенных систем и мобильных устройств.

uClibc был в основном написан с нуля, но включил код из glibc и других проектов.

uClibc – обертка вокруг системных вызовов ядра Linux и μClinux. uClibc намного меньше, чем glibc, библиотека C обычно используется с дистрибутивами Linux. Хотя glibc предназначен для полной поддержки всех соответствующих стандартов C на широком спектре аппаратных и ядровых платформ, uClibc специально ориентирован на встроенный Linux. Функции могут быть включены или отключены в соответствии с требованиями к пространству.

Часто вы также заменяете busybox и предоставляете вам исчерпывающую версию бинарных утилов, которые у вас есть в Linux, например, вы заметите, что ls и, например, обнаруживают разные, менее мощные и имеют меньше возможностей для использования.

BusyBox – это программное обеспечение, которое предоставляет несколько утихающих инструментов Unix в одном исполняемом файле. Он работает в различных средах POSIX, таких как Linux, Android, [7] и FreeBSD [8], хотя многие из инструментов, которые он предоставляет, предназначены для работы с интерфейсами, предоставляемыми ядром Linux. Он был специально создан для встроенных операционных систем с очень ограниченными ресурсами.

Различия также не заканчиваются здесь. Вместо Apache у вас может быть Люси; и вместо OpenSSH, Dropbear SSH.

Dropbear – относительно небольшой сервер и клиент SSH. Dropbear особенно полезен для «встроенных» -типов Linux (или других Unix-систем), таких как беспроводные маршрутизаторы.

У вас также будет очень урезанное ядро ​​Linux, и не обязательно последняя версия. В некоторых китайских советах также может быть несколько «взломан» поддержка нестандартного оборудования, и вы (и часто поставщик) не сможете перекомпилировать его для более новых версий.

Я боюсь, вам придется исследовать немного больше о вашей маленькой машинной среде; Я также надеюсь, что этот ответ поможет вам понять, что он не должен обрабатывать встроенный Linux во всех отношениях с полноценным сервером Linux.

Как всегда, помимо наличия инструментов, их нужно понимать.

  • Настройте VPS так, чтобы только аутентифицированные пользователи VPN могли получить доступ к веб-серверу
  • yum - нет пакета httpd (новый VPS)
  • Резервное копирование / восстановление полного VPS, не может загружаться с живых медиа
  • Как не писать предупреждения ядра в / var / log / messages?
  • Как подключиться к VPS без SSH.
  • Debian dns Запись «A», используемая другим доменом?
  • Ubuntu VPS в режиме ожидания / ожидания?
  • Отключение аутентификации паролей ssh ​​не работает на моем debian VPS
  • Почему я не могу связать свое доменное имя и vps_ip?
  • Каждый раз, когда я перезапускаю свой сервер Digital Ocean, изменения .ssh / authorized_keys
  • Плутон не находит интерфейс на ipsec VPN
  • Interesting Posts

    Поля метаданных, необходимые для файлов debian Release?

    Запустите один скринсейвер на нескольких мониторах

    Arch Linux Шифрование всего диска

    Как сохранить конечную косую черту после выбора каталога из параметров завершения zsh?

    Автозаполнение в оболочке с использованием последних N байтов stdout

    GNOME не работает на Debian Jessie после установки fglrx

    проверить прием пакетов tcp ниже уровня tcpdump

    Нужно разбирать разделы текста из повторяющихся «группировок» строк внутри файла

    Alpine: работа с некоторыми электронными письмами

    Почему crontab -e отличается от менее / etc / crontab?

    Добавить круглые скобки вокруг чисел

    Сравнение файлов по строкам в awk с разделителем

    «Нет имени пользователя PostgreSQL» – возможные проблемы параллелизма?

    hard vs – in limits.conf

    Как вы используете 'find' для обновления права собственности на все каталоги, файлы и символические ссылки в папке?

    Linux и Unix - лучшая ОС в мире.