вторник, 23 января 2018 г.

CentOS 7 и gyp: ImportError: No module named cmake

GYP (generate your projects) is a build automation tool. GYP is created by Google to generate native IDE project files (such as Visual Studio Code and Xcode) for building the Chromium web browser and is licensed as open source software using the BSD software license.

The functionality of GYP is similar to the CMake build tool. GYP processes a file that contains a JSON dictionary[1] in order to generate one or more target project make files. The single source .GYP file is generic while the target files are specific to each targeted build tool.

Потребовалось для некоторых задач использовать gyp (wiki, 2) с опцией --format=cmake, но молвит нам компилятор ImportError: No module named cmake
Также не помогла установка python-pip && pip install cmake. Копать надо в сторону самого gyp:
$ ls -la /usr/lib/python2.7/site-packages/gyp/generator/cmake*
ls: cannot access /usr/lib/python2.7/site-packages/gyp/generator/cmake*: No such file or directory

То есть просто нет данного функционала в самом gyp. Но заглянув например сюда - мы этот модуль видим.



$ rpm -qa|grep gyp
gyp-0.1-0.11.1617svn.el7.noarch

И теперь смотрим, что на rpmfind
смотрим, когда вышла 11 версия...
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-0.11.1617svn
  - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Apr 23 2013 Akira TAGOH <tagoh@redhat.com> - 0.1-0.10.1617svn
  - Rebase to r1617

Видим, что последние изменения (не mass rebuild) это 0.1-0.10. Это печально. Центос в своём репертуаре. Впрочем, ничего не мешает стянуть src файл и пересобрать.
$ wget https://download.fedoraproject.org/pub/fedora/linux/releases/27/Everything/source/tree/Packages/g/gyp-0.1-0.23.920ee58git.fc27.src.rpm
$ mock -r epel-7-x86_64 rebuild gyp-0.1-0.23.920ee58git.fc27.src.rpm 

ls -la /var/lib/mock/epel-7-x86_64/result/gyp-0.1-0.23.920ee58git.el7.centos.noarch.rpm
sudo rpm -Uvh /var/lib/mock/epel-7-x86_64/result/gyp-0.1-0.23.920ee58git.el7.centos.noarch.rpm

Только если есть планы модуль куда-то ещё ставить -- копируем всё нужное из /var/lib/mock/epel-7-x86_64/result/ - оно будет очищено при следущей mock сборке.

Комментариев нет:

Отправить комментарий