Se você quiser apenas decodificar wav
de ogg vorbis
, basta usar o utilitário oggdec
para fazer isso, em vez de ogg123
(que tem mais dependências).
Para criar uma versão "estática" de oggdec
, você primeiro precisará criar versões estáticas das bibliotecas libogg
e libvorbis
, desta forma:
#Create staging directory
STAGING=$HOME/staging/vorbis-tools
mkdir -p $STAGING
#Sources
SRC=$STAGING/src
mkdir -p $SRC
#Build artifacts
OUT=$STAGING/build
mkdir -p $OUT
#Build a static version of "libogg"
wget downloads.xiph.org/releases/ogg/libogg-1.3.1.tar.xz -qO-|tar -C $SRC -xJ
pushd $SRC/libogg*/
./configure --prefix=$OUT --disable-shared
make install
popd
#Build a static version of "libvorbis"
wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.xz -qO-|tar -C $SRC -xJ
pushd $SRC/libvorbis*/
./configure --prefix=$OUT LDFLAGS="-L$OUT/lib" CPPFLAGS="-I$OUT/include" --disable-shared
make install
popd
Agora você pode criar oggdec
(vorbis-tools), vinculado estaticamente a libogg
e libvorbis
:
#Build "vorbis-tools"
wget downloads.xiph.org/releases/vorbis/vorbis-tools-1.4.0.tar.gz -qO- | tar -C $SRC -xz
pushd $SRC/vorbis-tools*/
./configure LDFLAGS="-L$OUT/lib" CPPFLAGS="-I$OUT/include"
make
popd
Você pode usar ldd para
verifique a lista de dependências do seu recém-construído oggdec
binary:
ldd $SRC/vorbis-tools*/oggdec/oggdec
linux-vdso.so.1 (0x00007ffc85792000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbcba839000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbcba48e000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbcbab3a000)
O binário resultante não é totalmente "estático", já que ainda expõe dependência em algumas bibliotecas do sistema (em particular "libc" e "libm"), mas isso deve ser muito bom para executá-lo em "Amazon Linux".