Intereting Posts
Можно ли включить поддержку фреймбуфера в xterm Использовать поставщика VirtualBox по умолчанию для Fedora 21 Почему я получаю ошибки об неупакованных файлах при попытке построить rpm? Постоянное добавление приоритета к задаче на машине Linux Hugepages in linux – как убедиться, что процесс java начнет использовать огромные страницы Привязать специальный USB-выход Когда именно context_switch () переключает управление на новый процесс? Почему никто не использует позиционные аргументы, доступные для функций завершения Bash? Способ установки параметров в родительских группах LXC Точка монтирования не существует, создайте каталог, затем «Файл существует» обновление-grub против grub-install? Фиксирование DPI от .xinitrc Использование файла интерфейса с утилитой LP и txt2pdf для преобразования файла печати в PDF rc.local зависает при загрузке Сравните 2 файла и сохраните вывод как file1_value, file2_value, Match / NoMatch

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

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

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

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

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

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

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