12 янв. 2014 г.

Debian Wheezy 64 bit, Fglrx, Steam

Список пакетов fglrx (закрытый драйвер ATI):

fglrx-atieventsd
fglrx-control
fglrx-driver
fglrx-glx
fglrx-modules-dkms
glx-alternative-fglrx
libfglrx
libfglrx-amdxvba1
libgl1-fglrx-glx


libfglrx:i386
libgl1-fglrx-glx:i386


Установка:

$ sudo apt-get install fglrx-atieventsd fglrx-control fglrx-driver fglrx-glx fglrx-modules-dkms glx-alternative-fglrx libfglrx libfglrx-amdxvba1 libgl1-fglrx-glx libfglrx:i386 libgl1-fglrx-glx:i386

$ sudo aticonfig --initial

Установщик Steam: Steam Installer for Wheezy

$ wget https://dl.dropboxusercontent.com/u/82856418/Steam-Installer-For-Wheezy/steam-debian_1.0.0.45-4_all.deb
$ sudo dpkg -i steam-debian_1.0.0.45-4_all.deb

9 янв. 2014 г.

Gentoo: /usr/lib64/libc.so.6: invalid ELF header

Ошибка при сборке или запуске программ:

/usr/lib64/libc.so.6: invalid ELF header

У меня эта ошибка проявилсь в следующей конфигурации:

$ ls -l /usr/lib64/libc.so.6
lrwxrwxrwx 1 root root 18 Jul  9  2013 libc.so.6 -> /usr/lib64/libc.so


$ file /usr/lib64/libc.so
/usr/lib64/libc.so: ASCII text


cat /usr/lib64/libc.so
/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf64-x86-64)
GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a  AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) )


$ ls -l /lib/libc.so.6
lrwxrwxrwx 1 root root 12 Jan  9 18:30 /lib/libc.so.6 -> libc-2.17.so*
 

$ file /lib/libc-2.17.so
/lib/libc-2.17.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped


То есть, /usr/lib64/libc.so.6 -- это linker script (используется при линковке программы), а /lib/libc.so.6 -- это настоящая библиотека (используется при запуске программы).

Проблема проявляется, если при запуске вместо настоящей библиотеки загрузчик находит linker script.

Решение 1

$ export LD_LIBRARY_PATH=/lib64

Решение 2

# rm /usr/lib64/libc.so.6
# ln -s /lib/libc.so.6 /usr/lib64/
# ldconfig