VirtualBox shared folder makes cmake_symlink_library fail
June 20, 2017
In the morning I decided to do some work on my Markdown-to-site project, a project that will eventually generate this website. At this early stage the project required me to install the Perl module CommonMark:
$ cpanm CommonMark --> Working on CommonMark Fetching http://www.cpan.org/authors/id/N/NW/NWELLNHOF/CommonMark-0.240100.tar.g z ... OK Configuring CommonMark-0.240100 ... N/A ! Configure failed for CommonMark-0.240100. See /home/john/.cpanm/work/149796912 4.7545/build.log for details.
The log contains the following line, explaining the reason of failure:
libcmark 0.21.0 or higher not found at Makefile.PL line 16.
Next, as I am developing on Ubuntu 17.04, I tried to install
sudo apt-get install libghc-cmark-dev
But this did not solve the issue. I am not sure why not, but decided to just build the required library from source. Also because the version that comes with Ubuntu 17.04 might already be outdated.
So I cloned the CommonMark parsing and rendering library repository as follows.
git clone https://github.com/jgm/cmark.git
make complained that
cmake could not be found I installed this
program as follows:
sudo apt-get install cmake
And another speed bump was hit: the make process failed unexpectedly. Output edited for brevity follows:
$ make mkdir -p build; \ cd build; \ cmake .. \ -G "Unix Makefiles" \ -DCMAKE_BUILD_TYPE= \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON : : [ 64%] Linking C shared library libcmark.so CMake Error: cmake_symlink_library: System Error: Read-only file system src/CMakeFiles/libcmark.dir/build.make:562: recipe for target 'src/libcmark.so.0 .27.1' failed make: *** [src/libcmark.so.0.27.1] Error 1 make: *** Deleting file 'src/libcmark.so.0.27.1' : : Makefile:32: recipe for target 'cmake_build' failed make: *** [cmake_build] Error 2
A Google search for "CMake Error: cmake_symlink_library: System Error: Read-only file system" (without the quotes) gave as a first result: 0015837: cmake_symlink_library fails on shared folders in Virtualbox with linux vm and linux host - MantisBT which made clear that this error has to do with me using a VirtualBox Shared folder. Hence, the solution was as easy as moving the cmake directory out of the mounted directory and running:
make make test sudo make install
After these three commands I could install the
distribution without any problem:
$ cpanm CommonMark --> Working on CommonMark Fetching http://www.cpan.org/authors/id/N/NW/NWELLNHOF/CommonMark-0.240100.tar.g z ... OK Configuring CommonMark-0.240100 ... OK Building and testing CommonMark-0.240100 ... OK Successfully installed CommonMark-0.240100 1 distribution installed