A instalação do gem do Ruby falhou

3

Eu tentei instalar o gosu Ryby gem com

$ sudo gem install gosu

Building native extensions. This could take a while...

ERROR:  Error installing gosu:

    ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.5.0/gems/gosu-0.13.3/ext/gosu
/usr/bin/ruby2.5 -r ./siteconf20180610-10446-laumk5.rb extconf.rb
The Gosu gem requires some libraries to be installed system-wide.
See the following site for a list:

https://github.com/gosu/gosu/wiki/Getting-Started-on-Linux

checking for TTF_RenderUTF8_Blended() in -lSDL2_ttf... yes

checking for SDL_ttf.h... yes

checking for -lopenal... no

creating Makefile

current directory: /var/lib/gems/2.5.0/gems/gosu-0.13.3/ext/gosu

make "DESTDIR=" clean

current directory: /var/lib/gems/2.5.0/gems/gosu-0.13.3/ext/gosu

make "DESTDIR="

compiling ../../src/Audio.cpp

In file included from ../../src/Audio.cpp:1:0:

../../src/AudioImpl.hpp:9:10: fatal error: AL/al.h: No such file or directory

 #include <AL/al.h>

          ^~~~~~~~~

compilation terminated.

Makefile:234: recipe for target 'Audio.o' failed

make: *** [Audio.o] Error 1

make failed, exit code 2

Gem files will remain installed in /var/lib/gems/2.5.0/gems/gosu-0.13.3 for inspection.

Results logged to /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/gosu-

0.13.3/gem_make.out

shane@shane-HP-x2-Detachable-10-p0XX:~$ sudo apt-get install -lopenal

E: Command line option 'l' [from -lopenal] is not understood in combination 
with the other options.

Noto que o problema é com -lopenal, mas como instalo ou obtenho isso para que seja feito o download corretamente

EDIT: -lopenal agora tem um sim, graças a N0rbert. Mas agora eu vejo que diz "erro fatal" um pouco abaixo da tela, então como eu corrijo isso?

    
por Shane.D 10.06.2018 / 10:56

2 respostas

2

Você precisa instalar o pacote, que contém o cabeçalho AL / al.h - use packages.ubuntu.com com sudo apt install libopenal-dev .

Mas se você precisar que a gosu Gem seja compilada com sucesso, a instalação de libopenal-dev não é suficiente.

Você precisa consultar a documentação oficial para instalar outras dependências de compilação com:

# Dependencies for both C++ and Ruby
sudo apt-get install build-essential libsdl2-dev libsdl2-ttf-dev libpango1.0-dev \
                     libgl1-mesa-dev libopenal-dev libsndfile-dev libmpg123-dev \
                     libgmp-dev

# To install Ruby itself - if you are using rvm or rbenv, please skip this step
sudo apt-get install ruby-dev

# If you are using a Ruby version manager (i.e. rvm or rbenv)
gem install gosu
# If you are using system Ruby, you will need "sudo" to install Ruby libraries (gems)
sudo gem install gosu
    
por N0rbert 10.06.2018 / 11:26
2

Você pode instalar o pacote executando o seguinte comando

sudo apt install libopenal-dev

Ter um hífen ( - ) antes de um parâmetro em comandos bash é considerado como se você estivesse passando opções para os comandos.

Você deve descobrir qual é o nome do pacote para um determinado arquivo de cabeçalho e, em seguida, instalá-lo com o apt.

O comando que você executou

sudo apt install -lopenal

é interpretado como o seguinte

sudo apt install -l -o -p -e -n -a -l

Algumas dicas

  • Um nome de pacote nunca começa com um hífen.
  • Na maioria das vezes, se nem sempre, os nomes dos pacotes são sufixados com -dev quando você precisa apenas de arquivos de cabeçalho.
  • Os pacotes de biblioteca são frequentemente, mas nem sempre, prefixados com lib .
  • Um nome de pacote nem sempre é exatamente o mesmo nome do software.
  • Você pode pesquisar por um pacote com apt search <keyword>
  • Eu odeio ser a pessoa "vá para o Google", mas neste caso, o Google ou qualquer outro mecanismo de pesquisa pode ser realmente útil para descobrir quais são as dependências de uma certa gem / pacote quando a documentação oficial não menciona isso.
por Dan 10.06.2018 / 11:31