includeos / IncludeOS

A minimal, resource efficient unikernel for cloud services
https://www.includeos.org
Apache License 2.0
4.89k stars 360 forks source link

Installation on Arch Linux not working #1515

Closed agauniyal closed 6 years ago

agauniyal commented 6 years ago

I've manually installed the dependencies it asks for but it still shows them as Missing. Here's the log -

./install.sh 
>>> Dependencies required:
Status          Package              Version 
------          -------              ------- 
MISSING         curl                  
MISSING         make                  
MISSING         cmake                 
MISSING         nasm                  
MISSING         bridge-utils          
MISSING         qemu                  
MISSING         jq                    
MISSING         python-pip            
MISSING         g++-multilib          

clang-3.8 -> MISSING

python pip -> INSTALLED
     INSTALLED       jsonschema           (2.6.0) 
     INSTALLED       psutil               (5.3.1) 
     INSTALLED       junit-xml            (1.8) 
     INSTALLED       filemagic            (1.6) 

>>> IncludeOS will be installed with the following options:

    [NOTICE] Missing dependencies will be installed

    Env variable              Description               Value
    ------------              -----------               -----
    INCLUDEOS_SRC             Source dir of IncludeOS   /home/agauniyal/projects/IncludeOS
    INCLUDEOS_PREFIX          Install location          /home/agauniyal/includeos/
    ARCH                      CPU Architecture          x86_64
    INCLUDEOS_ENABLE_TEST     Enable test compilation   OFF
Is this correct [Y/n]? y
>>> Installing missing dependencies (requires sudo):
:: Synchronizing package databases...
 core                     125.8 KiB  12.3M/s 00:00 [##########################] 100%
 extra                   1661.5 KiB  10.1M/s 00:00 [##########################] 100%
 community                  4.1 MiB  9.70M/s 00:00 [##########################] 100%
 multilib                 173.8 KiB  8.48M/s 00:00 [##########################] 100%
 archlinuxfr               13.6 KiB  1363K/s 00:00 [##########################] 100%
:: Starting full system upgrade...
 there is nothing to do
warning: curl-7.56.0-1 is up to date -- skipping
warning: make-4.2.1-2 is up to date -- skipping
warning: cmake-3.9.4-1 is up to date -- skipping
warning: nasm-2.13.01-1 is up to date -- skipping
warning: bridge-utils-1.6-2 is up to date -- skipping
warning: qemu-2.10.1-1 is up to date -- skipping
warning: jq-1.5-5 is up to date -- skipping
warning: python-pip-9.0.1-2 is up to date -- skipping
error: target not found: g++-multilib
warning: python2-2.7.14-1 is up to date -- skipping
sh: /etc/apt/sources.list: No such file or directory
sudo: apt-key: command not found
sudo: apt-get: command not found
sudo: apt-get: command not found

>>> Running install_from_bundle.sh (expect up to 3 minutes)
/usr/bin/clang
/usr/bin/clang++

>>> Best guess for compatible compilers: clang++ / clang

>>> Building IncludeOS
~/projects/IncludeOS/build_x86_64 ~/projects/IncludeOS
-- Target CPU x86_64
-- Target triple x86_64-pc-linux-elf
-- The C compiler identification is Clang 5.0.0
-- The CXX compiler identification is Clang 5.0.0
-- Check for working C compiler: /usr/bin/clang
-- Check for working C compiler: /usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using vanilla CPU features: SSE3. CAPABS = -msse3 -mfpmath=sse
-- Init git submodule: mod/GSL
Submodule 'mod/GSL' (https://github.com/Microsoft/GSL.git) registered for path 'mod/GSL'
Cloning into '/home/agauniyal/projects/IncludeOS/mod/GSL'...
Submodule path 'mod/GSL': checked out '9d13cb14c3cf6b59bd16071929f25ac5516a4d24'
-- Init git submodule: mod/http-parser
Submodule 'mod/http-parser' (https://github.com/nodejs/http-parser.git) registered for path 'mod/http-parser'
Cloning into '/home/agauniyal/projects/IncludeOS/mod/http-parser'...
Submodule path 'mod/http-parser': checked out '335850f6b868d3411968cbf5a4d59fe619dee36f'
-- Init git submodule: mod/uzlib
Submodule 'mod/uzlib' (https://github.com/AnnikaH/uzlib.git) registered for path 'mod/uzlib'
Cloning into '/home/agauniyal/projects/IncludeOS/mod/uzlib'...
Submodule path 'mod/uzlib': checked out '732e506a57fba99e3862fec0158beb1c9932e70c'
-- Init git submodule: mod/rapidjson
Submodule 'mod/rapidjson' (https://github.com/miloyip/rapidjson.git) registered for path 'mod/rapidjson'
Cloning into '/home/agauniyal/projects/IncludeOS/mod/rapidjson'...
Submodule path 'mod/rapidjson': checked out 'b596f4e99013dcc2d15f3c71124f15e4330beb3a'
-- The ASM_NASM compiler identification is NASM
-- Found assembler: /usr/bin/nasm
-- Configuring done
-- Generating done
-- Build files have been written to: /home/agauniyal/projects/IncludeOS/build_x86_64
Scanning dependencies of target solo5_repo
[  0%] Creating directories for 'solo5_repo'
[ 20%] Performing download step (git clone) for 'solo5_repo'
Cloning into 'solo5_repo'...
Note: checking out 'f8a277f83807333685742228ffef0d87270207cf'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at f8a277f... Merge pull request #209 from Weichen81/arm64-refactor
[ 20%] No patch step for 'solo5_repo'
[ 20%] No update step for 'solo5_repo'
[ 40%] Performing configure step for 'solo5_repo'
[ 40%] Performing build step for 'solo5_repo'
/home/agauniyal/projects/IncludeOS/build_x86_64/precompiled/src/solo5_repo/ukvm/ukvm_hv_kvm.c: In function ‘ukvm_hv_init’:
/home/agauniyal/projects/IncludeOS/build_x86_64/precompiled/src/solo5_repo/ukvm/ukvm_hv_kvm.c:42:26: error: implicit declaration of function ‘malloc’ [-Werror=implicit-function-declaration]
     struct ukvm_hv *hv = malloc(sizeof (struct ukvm_hv));
                          ^~~~~~
/home/agauniyal/projects/IncludeOS/build_x86_64/precompiled/src/solo5_repo/ukvm/ukvm_hv_kvm.c:42:26: error: incompatible implicit declaration of built-in function ‘malloc’ [-Werror]
/home/agauniyal/projects/IncludeOS/build_x86_64/precompiled/src/solo5_repo/ukvm/ukvm_hv_kvm.c:42:26: note: include ‘<stdlib.h>’ or provide a declaration of ‘malloc’
cc1: all warnings being treated as errors
make[5]: *** [Makefile.ukvm:23: _build-ukvm/ukvm_hv_kvm.o] Error 1
make[4]: *** [GNUmakefile:40: ukvm] Error 2
make[3]: *** [CMakeFiles/solo5_repo.dir/build.make:112: precompiled/src/solo5_repo-stamp/solo5_repo-build] Error 2
make[2]: *** [CMakeFiles/Makefile2:68: CMakeFiles/solo5_repo.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:117: CMakeFiles/PrecompiledLibraries.dir/rule] Error 2
make: *** [Makefile:199: PrecompiledLibraries] Error 2
>>> Sorry <<<
Could not install from bundle.
clang --version
clang version 5.0.0 (tags/RELEASE_500/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
ingve commented 6 years ago

Is this on the dev or master branch? ISTR that @Voultapher was able to install on Arch by disabling Solo5 (there's a WITH_SOLO5 CMake option)

agauniyal commented 6 years ago

Hi @ingve I simply executed - git clone https://github.com/hioa-cs/IncludeOS from project readme so I believe this should be master branch. I can try disabling Solo5 but is that recommended (given I heard it's the direction includeos is moving towards)?

ingve commented 6 years ago

Solo5 might very well be The Future™, but it is also disabled on macOS for now, so it is still very useful to be able to get up and running with IncludeOS on traditional hypervisors/VMMs like QEMU/Virtualbox etc.

(Another alternative is to run an Ubuntu VM and install IncludeOS there. @mnordsletten makes sure installation is always tested in Ubuntu, whereas our Arch support depends on help from the community)

alfreb commented 6 years ago

@agauniyal have you installed gcc? My understanding is that Solo5/ukvm has to be built using gcc. I can't tell from this log if that's the issue here though - could you try VERBOSE=1 make -j in the IncludeOS build folder?

JohnCoconut commented 6 years ago

I just managed to build and run test on lastest Arch with default cmake options.

JohnCoconut commented 6 years ago

This error strikes me again.

I edited build_x86_64/precompiled/src/solo5_repo/Makefile.common and remove -Werror from it. Not perfect but works.

ricarkol commented 6 years ago

@mywtfmp3, favor please. Would you mind trying to build the latest solo5 from https://github.com/Solo5/solo5 in that same box please? If that works, then this is a good reason to move to the latest.

JohnCoconut commented 6 years ago

@ricarkol There is the result of compiling solo5.

OS gcc version solo5 branch results
Arch linux 8.1.1 2765e0f failure
Arch linux 7.3.1 2765e0f success
Arch linux 8.1.1 Master success
Arch linux 7.3.1 Master success
CentOS 4.8.5 2765e0f success
CentOS 7.3.1 2765e0f success
CentOS 4.8.5 Master success
CentOS 7.3.1 Master success
ricarkol commented 6 years ago

Thank you very much @mywtfmp3 , will create a PR to point to the latest.