Я не знаю способа запросить перемещение определенной части памяти для подкачки в Linux. Однако возможно и обратное.Вы можете явно предварительно загрузить файлы, используемые BAR для кэширования, просто запустив cat /path/to/file >/dev/null
.
Если BAR уже запущен и частично выгружен, в Linux вы можете организовать загрузку его страниц, читая из /proc/BAR_PID/mem
. См. Как читать из /proc/$pid/mem под Linux?
Кроме того, если вы хотите выделить часть памяти для быстрого использования BAR, вы можете запустить программу, которая выделит большой объем памяти. Это не идеально, поскольку ядро может принять решение заменить какой-либо другой процесс или удалить полезные файлы из кэша диска. Для достижения наилучших результатов сделайте это перед заменой всего, что вы хотите явно заменить, и приостановите FOO(kill -STOP FOO_PID
). perl -e '$a = "a" x 1234567'
выделяет около 2×1234567 байтов памяти плюс изменение.
Я думаю, что ключ находится в этой строке последнего сообщения об ошибке, которое вы написали:
libasan2-armhf-cross : Depends: libc6-armhf-cross (>= 2.27) but 2.23-0ubuntu3cross1 is to be installed
Когда написано 2.23-0ubuntu3cross1 is to be installed
, это означает, что версия libc6-armhf-cross
, известная по apt
, — это 2.23-...
. Следовательно, если вы apt install libc6-armhf-cross
, вы получите 2.23-...
. К сожалению, этого недостаточно, потому что apt находился в процессе установки чего-то еще, для чего требуется (>= 2.27)
.
Есть несколько причин, по которым это может:
*.deb
напрямую из более новой версии Ubuntu или из PPA, который не поддерживает вашу версию (пакета ). Deb может не поддерживать зависимости, представленные в вашей версии. В этом случае попробуйте установить версию для вашего конкретного пакета. apt update
получить apt dist-upgrade
. Судя по количеству автоудалений, я подозреваю, что дело может быть в этом. /etc/apt/preferences.d/
, добавьте это к своему вопросу. Он содержит правила для таких вещей, как приоритет одной версии над другой. В любом случае -было бы полезно отредактировать ваш ответ, включив в него вывод cat /etc/apt/sources.list /etc/apt/sources.list.d/*.list
и любую информацию о том, вносили ли вы его недавно.
Я обнаружил, что при обновлении пакета проще всего переключаться между следующими командами, пока все не заработает. Пока ваши источники и закрепление настроены правильно,обычно это решает проблему:
apt update
apt upgrade
apt dist-upgrade
apt --fix-broken install