Як встановити 32-бітний фірмовий деб в 64-бітній системі, не викликаючи проблем залежності?


15

Я знаю, що Guitar pro не підтримує 64 біт, але я змусив його працювати з цією командою

jeggy@jeggy-XPS:~$ sudo dpkg --force-architecture -i GuitarPro6-rev9063.deb
[sudo] password for jeggy: 
Selecting previously unselected package guitarpro6:i386.
(Reading database ... 285729 files and directories currently installed.)
Unpacking guitarpro6:i386 (from GuitarPro6-rev9063.deb) ...
dpkg: dependency problems prevent configuration of guitarpro6:i386:
 guitarpro6:i386 depends on gksu.
dpkg: error processing guitarpro6:i386 (--install):
 dependency problems - leaving unconfigured
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...
Errors were encountered while processing:
 guitarpro6:i386

І навіть після того, як я отримаю цю помилку, програма прекрасно працює і оновлення, і додавання PPA до системи працює чудово, але коли я намагаюся встановити інше програмне забезпечення, я отримую цю помилку:

jeggy@jeggy-XPS:~$ sudo apt-get install elinks
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 elinks : Depends: libfsplib0 (>= 0.9) but it is not going to be installed
          Depends: liblua50 (>= 5.0.3) but it is not going to be installed
          Depends: liblualib50 (>= 5.0.3) but it is not going to be installed
          Depends: libtre5 but it is not going to be installed
          Depends: elinks-data (= 0.12~pre5-7ubuntu1) but it is not going to be installed
 guitarpro6:i386 : Depends: gksu:i386 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

І кожного разу, коли я пишу "apt-get -f install", я отримую це

jeggy@jeggy-XPS:~$ sudo apt-get -f install
[sudo] password for jeggy: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  dconf-gsettings-backend:i386 python-levenshtein python-indicate libav-tools libstartup-notification0:i386
  libxmuu1:i386 libavfilter-extra-2 libbabl-0.0-0 libgegl-0.0-0 libgconf2-4:i386 python-vobject libgtk-3-0:i386
  libpam-cap:i386 python-utidylib libdconf0:i386 python-iniparse python-xmpp libpam-gnome-keyring:i386
  libxcb-util0:i386 python-farstream
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  guitarpro6:i386
0 upgraded, 0 newly installed, 1 to remove and 7 not upgraded.
1 not fully installed or removed.
After this operation, 84,0 MB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 286979 files and directories currently installed.)
Removing guitarpro6:i386 ...
dpkg: warning: while removing guitarpro6:i386, directory '/opt/GuitarPro6/updater' not empty so not removed.
dpkg: warning: while removing guitarpro6:i386, directory '/opt/GuitarPro6/Data/Soundbanks' not empty so not removed.
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for desktop-file-utils ...
Processing triggers for gnome-menus ...

А тепер Guitar Pro видалено.
Як я можу встановити Guitar Pro і як і раніше мати можливість інсталювати інше програмне забезпечення?

Відповіді:


30

Увага:

GuitarPro Деб це небезпечно упаковано!

  • Якщо у 64-бітній системі ви, apt-get -f installнамагаючись встановити її, apt-getзахочете видалити наступні критичні пакети системи , які можуть зруйнувати вашу установку Ubuntu!

    Наступні пакети будуть видалені:
     gksu guitarpro6: i386 libgksu2-0 libpam-gnome-keyring  sudo ubuntu-desktop
    ubuntu-мінімальний менеджер оновлень оновлень-оновлення xauth xinit  xorg
  • судо ? оновлення-менеджер ?? Х! Що думають розробники ?! Це також apt-getдумає, що купа пакетів i386 встановлена ​​тоді, коли жодного не було. Ось повний парібін Горі.


Безпечно встановіть GuitarPro, не apt-getбажаючи його видаляти

  • Я вважаю, що вищезгадана поведінка походить від тупої залежності деба gksu:i386(від графічного пакету елевацій кореня)
  • На жаль, єдиний безпечний спосіб встановити це, і не доведеться мати справу з apt-getнюханням, - це встановити його вручну та його залежності. Ось як:

Як вручну перевірити та безпечно встановити бінарний дебют i386 з його залежностями

  • Спочатку видаліть поточну наполовину встановлену упаковку sudo dpkg --remove guitarpro:i386
  • Тепер перейдіть до каталогу, де зберігається ваш деб-файл. Для легкого введення тексту давайте створимо коротке символьне посилання - мій деб закликаний gp6-full-linux-demo-r11100.deb, ваш може відрізнятися:
    • ln -s gp6-full-linux-demo-r11100.deb gp6.deb

1. Вивчіть архітектуру та залежності деба

Спочатку ми вивчаємо залежності дебу, не встановлюючи його.

  • dpkg-deb -I gp6.deb показує нам:

     новий пакет debian, версія 2.0.
    розмір 172147458 байт: архів керування = 75020 байт.
     375 байт, 10 рядків керують 
    335109 байтами, 2770 рядків md5sums
    Пакет: GuitarPro6 Версія: 6.1.3 Розділ: не вільний / аудіо Пріоритет: за бажанням Архітектура: i386 Залежить: libc6 (> = 2.1.3), libstdc ++ 6, libasound2, libxml2, libxslt1.1, libportaudio0, libportaudio2, libglu1-mesa, gksu, libssl0.9.8 Встановлений розмір: 222632 Технічне обслуговування: Музика Arobas Опис: http://www.guitar-pro.com Guitar Pro 6, Версія Linux.

  • Отже, це програма i386, і всі її залежності також будуть i386.

  • Перше , що потрібно зробити , це встановити ia32-libsпакет сумісності i386, якщо ви ще не:
    • sudo apt-get install ia32-libs
  • Також скопіюємо та вставимо залежність пакета в текстовий файл, на потім.

2. "Витягніть" деб в архів дьогтю та вивчіть його вміст

  • Давайте витягувати на Деб в архів тар тепер так ми можемо перевірити його вміст без необхідності його установки:
    • dpkg-deb --fsys-tarfile gp6.deb > gp6.tar
  • І відкрийте диспетчер файлів (Nautilus) та змонтуйте файл gp6.tarяк архів, клацнувши правою кнопкою миші та вибравши Відкрити в програмі архівації ; після цього ви побачите gp6.tarдодану в нижній частині ліву бічну панель із значком викиду поруч:

    введіть тут опис зображення

  • Перейдіть до меню «Вид» для «Менеджера файлів» та змініть бічну панель на «Перегляд дерева» замість Місця :

    введіть тут опис зображення

  • Тепер розгорніть gp6.tarдерево на бічній панелі, натиснувши на трикутники; повторюйте для кожного рівня, поки не зможете побачити структуру папки файлу:

    введіть тут опис зображення

  • З цієї структури ми бачимо, що файли програми переходять у два місця: /optі /usr/share:

    • Все, що відбувається, /optє автономним і не вплине ні на що інше в системі.
    • Ми бачимо, що /usr/shareмістять лише піктограми / растрові карти, які нешкідливі.

3. Якщо це безпечно, "встановіть" програму, витягнувши файл tar

  • Поверніться до терміналу і переконайтеся, що ви знаходитесь в каталозі, що містить завантажені файли deb / tar. Потім введіть:

    sudo tar -C / -xvf gp6.tar
    
  • Це дозволить витягнути програмні файли у відповідних місцях, показуючи назви файлів та їх прогрес. ( Вибірка зразка )

    • -CПеремикач вказує , tarдля виконання цієї операції по відношенню до кореневої директорії, а не поточні каталог.

4. З'ясуйте, яких залежностей не вистачає ldd, встановіть їх і виконайте рок-н-рол!

  • Відкрийте /opt/GuitarPro6папку в Менеджері файлів:

    введіть тут опис зображення

    • Ми бачимо, що виконуваний файл називається GuitarPro (зі значком діаманта "gears"), а також, що в lib-xxxxпапку входить багато файлів.
    • Це нормально для бінарних програм; вони намагаються включити версії конкретних бібліотек, які їм потрібні, оскільки вони можуть бути недоступними у сховищах певного дистрибутива.
  • Поряд з цими включеними бібліотеками та ia32-libsпакетом мали бути встановлені більшість 32-бітних залежностей. Замість того, щоб сліпо встановлювати залежності, які ми бачили в інформації про файл деб через - що apt-getможе спричинити проблеми-- давайте з’ясуємо, чи насправді чогось не вистачає.

    • Поверніться до терміналу та перейдіть до каталогу GuitarPro за допомогою cd /opt/GuitarPro6

Використання ldd

  • Введіть ldd GuitarPro | grep found, і вихід будеlibportaudio.so.2 => not found

    • lddдрукує залежності (спільні бібліотеки) програми та існують вони в системі чи ні. Ось як виглядає повний вихід GuitarPro.
    • Щоб полегшити життя, ми просто фільтруємо ті, які не існують через grep found.
  • Тут відсутня лише бібліотека libportaudio2 . Але залежність сказала libportaudio 0 ? (див. крок 1.) Що це?

    • Давайте шукатимемо доступні версії за apt-cache search libportaudioдопомогою терміналу.
    • Це говорить нам про те , що , як libportaudio2 і libportaudio0пакети доступні. Давайте встановимо спочатку 2 , с
      sudo apt-get install libportaudio2 : i386
    • : I386 частина дуже важлива , так як наша програма 32-біт. Якщо apt-getвимагається замінити / видалити libportaudio2та / або інші файли, це нормально, оскільки деякі бібліотеки не можуть бути встановлені одночасно як у 32-, так і у 64-бітних версіях.
  • Давайте ще раз перевіримо залежності: остаточний раз: нічого неldd GuitarPro6 | grep found дає (саме цього ми хочемо!)

    • Якщо ви отримаєте помилку, ./GuitarPro: /opt/GuitarPro6/./libz.so.1: version ZLIB_1.2.3.3 not found (required by /usr/lib/i386-linux-gnu/libxml2.so.2)це означає, що Guitar Pro використовує неправильну версію libz , виправте це, видаливши файл libz.so.1 з каталогу GuitarPro6:
      sudo rm libz.so.1
      Guitar Pro повернеться до версії libz вашої системи.
  • Вийдіть із терміналу і поверніться до /opt/GuitarPro6папки в Менеджері файлів. Двічі клацніть GuitarPro і ...

    введіть тут опис зображення

  • Очистіть папку Завантажити, видаливши файл tar з файлового менеджера.

5. Клавіша швидкого запуску вже додана

  • Оскільки пакет вже містив GuitarPro6.desktopярлик, який було вилучено /usr/share/applications, немає потреби вручну створювати його. Він сидить там, у Launcher:

    введіть тут опис зображення


Так, все пройшло нормально, за винятком випадків, коли я востаннє використовував ldd GuitarPro6 | grep знайшов, що це дало мені відповідь: ./GuitarPro: /opt/GuitarPro6/./libz.so.1: версія `ZLIB_1.2.3.3 'не знайдено (потрібно / usr / lib / i386-linux-gnu / libxml2 .so.2)
Шахе Таджирян

Я спробував встановити це на іншому комп'ютері (12.10 64bit), і я зіткнувся з іншою помилкою, і це виправило: bit.ly/X7nvJ5 . Просто хотів поділитися цим, якщо хтось ще зіткнувся з якимись проблемами
Джеггі,

Яка дивовижна відповідь. Це чудово працювало на 64-розрядному Ubuntu 14.10. Я хотів би, щоб я міг подати заявку не раз ... FYI, мені також довелося зробити це sudo apt-get install libssl0.9.8:i386на додаток доlibportaudio2:i386
friederbluemle

Він прекрасно працює в 14.04
caisara

1

Я щось спробував і змусив його працювати!

  1. Я кудись скопіював "/ opt / GuitarPro6".

  2. Я зробив, sudo apt-get -f installщоб видалити гітару Pro.

  3. Я скопіював папку назад /opt/GuitarPro6і замінив усе там.

  4. Я встановив більше пакетів наступним чином:

    sudo apt-get install dconf-gsettings-backend python-levenshtein python-indicate libav-tools libstartup-notification0 libxmuu1 libavfilter-extra-2 libbabl-0.0-0 libgegl-0.0-0 libgconf2-4 python-vobject libgtk-3-0 libpam-cap python-utidylib libdconf0 python-iniparse python-xmpp libpam-gnome-keyring libxcb-util0 python-farstream
    
  5. Я завантажив це зображення піктограми GuitarPro і зберег її, /opt/GuitarPro6/icon.pngщоб я міг мати зображення, щоб створити власний .desktopфайл.

  6. Я створив .desktopфайл із sudo gedit:

    #!/usr/bin/env xdg-open
    
    [Desktop Entry]
    Type=Application
    Name=Guitar Pro 6
    Comment=Guitar Pro 6
    Icon=/opt/GuitarPro6/icon.png
    Exec=sh /opt/GuitarPro6/gp-launcher.sh
    Terminal=false
    Categories=Audio
    

    Цей файл я зберег у /usr/share/applicationsім'я GuitarPro6.desktop.

Тепер все працює, і я можу знайти Guitar Pro в тирі.


1
Це жахливе рішення.
tgm4883

1
Яке краще рішення є? Я спробував, що всі інші відповіли. ти знаєш якийсь кращий? і цей насправді працює добре.
Джеггі

Ви встановили всі залежності Guitar Pro?
tgm4883

ну тепер я це зробив sudo apt-get install dconf-gsettings-backend python-levenshtein python-indicate libav-tools libstartup-notification0 libxmuu1 libavfilter-extra-2 libbabl-0.0-0 libgegl-0.0-0 libgconf2-4 python-vobject libgtk-3-0 libpam-cap python-utidylib libdconf0 python-iniparse python-xmpp libpam-gnome-keyring libxcb-util0 python-farstream. і це працює так само добре.
Джеггі

Надалі не слід бігати sudo gedit. Ви повинні використовувати gksu geditабо gksudo geditзамість цього. Запуск графічних програм, rootвикористовуючи рівнину sudo, коли додаток для кожного користувача файли конфігурації, може зіпсувати ці програми для не- rootкористувача .
Елія Каган

1

Я також боровся з цим протягом останніх кількох днів. Я знайшов найкращий спосіб використовувати виконувану програму Windows під вином. Здається, набагато солідніше.


0

Щоб відповісти на ваше запитання, щоб відмовитися apt-get -f installвід видалення програмного забезпечення, вам потрібно додати --no-removeдо запущеної команди. Це негайно скасує запуск, якщо щось потрібно буде видалити, а програмне забезпечення не буде видалено.

Тим не менш, те, що ви, ймовірно, шукаєте, це спосіб нормально запустити систему, але також встановити це програмне забезпечення. Що вам потрібно буде зробити, це подивитись на результат, коли ви змушуєте встановити пакет з dpkg, і подивіться, на чому він виходить з ладу, а потім встановіть цю залежність, використовуючи

apt-get install package-name

У вашому випадку це gksu (конкретно, gksu). Тепер ви можете виявити, що при спробі встановити gksu, він також має залежності, які потрібно встановити. Оскільки ви змушуєте встановити 32-бітний пакет, вам потрібно буде встановити ці залежності вручну, використовуючи ту саму команду, що описана вище.


0

Я просто встановив gp6 під LinuxMint 14 32-розрядний, запустив оновлення та виправив проблеми з zlib, скопіювавши zlib.so1.2.27 в / opt / GuitarPro, перейменувавши його на zlib.so.1, встановив gksu та його залежності, запустив оновлення знову за доведення всіх до кінця. Згодом я підключив свій 64-розрядний Linux до 3-розрядного Linux через рибу: // ім'я користувача @ mymachineIP / opt у Dolphin та скопіював увесь реєстр GuitarPro6 у мій домашній dir на 64-бітній Linux та звідти до / opt. Працює.


-2

Спробуйте це:

Завантажте з http://www6.guitar-pro.com/en/index.php?pg=download .deb файл, але не встановлюйте його.

Завантажте та встановіть getlibs Потім:

sudo apt-get install libportaudio0
getlibs -l libportaudio.so.2
dpkg -i –force-all /path/to/GuitarPro6Demo2.deb

Нарешті, запустіть його (ігноруйте помилки):

/opt/GuitarPro6/gp-launcher.sh

Це не спрацювало краще, ніж я робив раніше :(
Джеггі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.