Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
x64? — пишите amd64 или x86_64, но это никаким боком не х64Хватит уже вносить смуту. Разберитесь раз и навсегда с терминологией архитектуры процессоров.
#!/bin/sh
# Скрипт установки Guitar Pro 6 на архитектуре amd64 для Debian-подобных ОС (Debian, Ubuntu, Kubuntu и т.д.)
# Данное решение - уродский хак, позволяющий установить 32-битную версию Guitar Pro 6 на 64-битных Debian-based системах
# Смотри также http://www.guitarplayer.ru/forum/index.php?topic=140510.msg2889582#msg2889582
# Script by Joe, 4.01.2011, GPL v3+
# ---- Секция данных
libs32='ia32-libs ia32-libs-gtk'
depend_list='libpulse0 libportaudio0 libportaudio2'
current_dir=$(pwd)
packet_folder="/tmp/$(date +%s%N)"
lib32portaudio_packet_name='lib32portaudio2'
packet32_name='libportaudio2_19+svn20071022-3.2_i386.deb'
packet64_name='lib32portaudio2_19+svn20071022-3.2_amd64'
packet_lib_url="http://ftp.fr.debian.org/debian/pool/main/p/portaudio19/$packet32_name"
packet_version='19+svn20071022-3.2'
gp6_packet_file="" # определяется по переданному параметру
gp6_packet_name='GuitarPro6'
# ---- Секция функций
# Обработка полученного аргумента
process_args() {
if [ "$1" = "" ]; then
echo "Использование: $0 имя_файла_пакета_guitar_pro_6"
exit 1
fi
gp6_packet_file="$1"
if ! [ -f $gp6_packet_file ]; then
echo "Файл $gp6_packet_file не существует!"
echo "Скопируйте данный скрипт в каталог с пакетом Guitar Pro 6."
echo "Если это не помогло - установите в этом скрипте корректное значение переменной gp6_packet"
exit 1
fi
}
# Проверяет наличие aptitude
install_aptitude() {
echo 'Проверка наличия aptitude... '
if ! $(aptitude --help >/dev/null); then
sudo apt-get install aptitude
sudo aptitude update
echo 'aptitude успешно установлен!'
else
echo 'OK!'
fi
}
# Удаляет мусор от прошлой установки Guitar Pro 6 (если он есть)
remove_garbage() {
echo 'Удаление "мусора" от предыдущей установки...'
killall GuitarPro
sudo dpkg -r $gp6_packet_name
sudo aptitude -y purge $lib32portaudio_packet_name
}
# Устанавливает 32-битные библиотеки из репозитория
install_libs32() {
echo 'Установка 32-битных библиотек...'
sudo aptitude -y install $libs32
}
# Устанавливает зависимости
install_dependencies() {
echo 'Установка зависимостей Guitar Pro 6...'
sudo aptitude -y install $depend_list
}
# Создает и устанавливает пакет lib32portaudio2
install_lib32portaudio() {
echo 'Создание пакета lib32portaudio...'
mkdir $packet_folder
cd $packet_folder
wget $packet_lib_url
dpkg --extract $packet32_name $packet64_name
cd "$packet64_name"/usr
rm -rf share/
mv lib/ lib32/
cd ..
mkdir DEBIAN
cd DEBIAN
cat <<!CONTROL! > control
Package: lib32portaudio2
Source: portaudio19 ($packet_version)
Version: $packet_version
Architecture: amd64
Maintainer: myself
Installed-Size: 208
Depends: ia32-libs
Section: libs
Priority: optional
Homepage: http://www.portaudio.com/
Description: Portable audio I/O - shared library
!CONTROL!
cd ../..
dpkg-deb --build "$packet64_name"/
echo 'Установка пакета lib32portaudio...'
sudo dpkg -i "$packet64_name".deb
sudo ldconfig
cd "$current_dir"
rm -rf $packet_folder
}
# Устанавливает пакет Guitar Pro 6
install_gp6_packet() {
echo 'Установка Guitar Pro 6...'
sudo dpkg --force-all -i $gp6_packet_file
return
}
# ---- Секция выполнения
# Обработка аргумента коммандной строки
process_args "$1"
# Установка зависимостей
install_aptitude
remove_garbage
install_libs32
install_dependencies
install_lib32portaudio
# Установка Guitar Pro 6
install_gp6_packet
# Проверка результата установки
if [ $? != 0 ]; then
echo 'Ошибка при установке Guitar Pro 6...'
exit 1
fi
# Задержка, чтобы успел обработаться ярлык оконным менеджером
echo "Подождите несколько секунд..."
sleep 10
echo 'Скрипт успешно завершен! Теперь вы можете запустить Guitar Pro 6 из меню вашего оконного менеджера или создать ярлык'
exit 0
(<unknown>:4763): Gtk-WARNING **: Error loading theme icon 'dialog-warning' for stock: Unable to load image-loading module: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: wrong ELF class: ELFCLASS64
#!/bin/sh
cd /opt/GuitarPro6
export GDK_PIXBUF_MODULE_FILE=/usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders.cache
./GuitarPro ""
./GuitarPro: /opt/GuitarPro6/./libz.so.1: version `ZLIB_1.2.3.3' not found (required by /usr/lib/i386-linux-gnu/libxml2.so.2)
нужно удалить файл libz.so.1 из папки /opt/GuitarPro6. После этой процедуры GuitarPro будет использовать системную библиотеку libz.so.
Установка Guitar Pro 6 на x64 Linux