Не собирается проект


#1

Есть проект, который компилируется у них в CI из master-а и не хочет компилироваться у меня локально. Связывался с разрабом, не хватало либ, установил в процессе, они обновили read.me
Проект - https://github.com/mit-pdos/noria
Билд лог мастера - https://travis-ci.org/mit-pdos/noria/builds/483413705

У меня лог ошибки такой

Спрашивал у автора, он ничего посоветовать не смог.
Linux Mint 19, x64, собирал nightly недавним
По результатам моих “хождений по граблям”, они добавили readme так :
You may need to install some dependencies for the above to work:
libclang-dev
libssl-dev
liblz4-dev

еще проверял build-essentials - все это давно установлено. Куда капнуть - не понятно, опыта не хватает…

/noria$ cargo --version
cargo 1.33.0-nightly (2b4a5f1f0 2019-01-12)


Ошибка при установке Rust
#2

stdarg.h это стандартный заголовочный файл из Си. Предлагаю посмотреть на команду, которую вызывает build.rs - очень странно чтобы этот файл не нашёлся. Наверное это возможно только если компилятор Си не установлен.


#3

Вряд ли нет С… build-essential насколько я знаю его включает. Строки гляну.

sudo apt install gcc
Уже установлен пакет gcc самой новой версии (4:7.3.0-3ubuntu2.1).
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.

gcc --version
gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0


#4

Проверил проект, в нем нет файла build.rs, увы…


#5

Если я правильно прошелся по зависимостям, то вот тут подключается вот этот rust-rocksdb репозиторий с custom веткой и вот там есть нужный build.rs

Запусти cargo build с флагом -vv - там выполняемая команда должна напечататься.

Ну и в целом это правда выглядит проблеммой именно сишного окружения - https://stackoverflow.com/questions/40431161/clang-tool-cannot-find-required-libraries-on-ubuntu-16-10/40432457#40432457 например


#6

Спасибо, это навело на мысли, стал проверять кодманды дошел до clang, вот тут и стало понятно, что мало только библиотеку иметь.
sudo apt-get install clang
все решил. После установки - начало компилиться, эту библиотеку прошел, но…
Не могу дособрать сервер.
на последних пакетах … 322/355
ПК мертво вешает Линукс… думаю поможет ли какое-то ограничение кол-ва ядер. Core i7 не новый, но ядер 8 штук.
Не могу из-за этого дособрать бинарник.


#7

Попробуй cargo build -j 1 какой-нибудь.


#8

Опять спасибо, “в точку”, помогло.
Пролистал корго-бук, всего одно “неприметное” упоминание… ни за чтобы сам быстро не нашел. Все собралось, вопрос решен.

NUM_JOBS - the parallelism specified as the top-level parallelism. This can be useful to pass a -j parameter to a system like make . Note that care should be taken when interpreting this environment variable. For historical purposes this is still provided but recent versions of Cargo, for example, do not need to run make -j as it’ll automatically happen. Cargo implements its own jobserver and will allow build scripts to inherit this information, so programs compatible with GNU make jobservers will already have appropriately configured parallelism.


#9

Еще по прошествии времени выяснилось что такие фризы Линукса связаны с установленным SSD. Они проявляются при большой нагрузке на ПК, в том числе интенсивная компиляция данного проекта на Rust.
Лечиться одим из способов в статье.

Делюсь, мало ли у кого еще встретиться… Давно грешил на SSD, как оказалось не зря.

http://www.howtoeverything.net/linux/hardware/ubuntu-freeze-issue-after-ssd-upgrade