ฉันจะติดตั้ง deb ที่เป็นกรรมสิทธิ์แบบ 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 deb เป็นแพคเกจที่อันตราย!

  • บนระบบ 64 บิตหากคุณapt-get -f installหลังจากพยายามติดตั้งแล้วapt-getจะต้องการลบแพ็คเกจที่สำคัญของระบบต่อไปนี้ซึ่งสามารถทำลายการติดตั้ง Ubuntu ของคุณได้!

    แพ็กเกจต่อไปนี้จะถูกลบ:
     gksu guitarpro6: i386 libgksu2-0 libpam-gnome-keyring  sudo ubuntu-desktop
    ubuntu-minimal- update-managerอัพเดท - ตัวแจ้งเตือน xauth xinit  xorg
  • sudo ? ปรับปรุงผู้จัดการ ?? X! นักพัฒนากำลังคิดอะไรอยู่! นอกจากนี้ยังทำให้apt-getคิดว่ามีแพ็คเกจ i386 ติดตั้งอยู่เมื่อไม่ได้รับ นี่คือ Pastebin เต็มไปด้วยเลือด


ติดตั้ง GuitarPro อย่างปลอดภัยโดยไม่apt-getต้องการลบออก

  • ฉันเชื่อว่าพฤติกรรมดังกล่าวมาจากการพึ่งพาของ deb gksu:i386(ซึ่งเป็นแพ็กเกจการยกระดับรากกราฟิก)
  • ขออภัยวิธีเดียวที่ปลอดภัยในการติดตั้งและไม่ต้องจัดการกับapt-getเสียงหอนของการติดตั้งด้วยตนเองคือการติดตั้งด้วยตนเองและการอ้างอิง นี่คือวิธี:

วิธีการตรวจสอบและติดตั้ง deb i386 แบบไบนารีด้วยตนเองอย่างปลอดภัยด้วยการอ้างอิง

  • ก่อนอื่นให้ลบแพ็คเกจที่ติดตั้งครึ่งหนึ่งปัจจุบันออก sudo dpkg --remove guitarpro:i386
  • ตอนนี้เปลี่ยนเป็นไดเรกทอรีที่เก็บไฟล์ deb ของคุณ เพื่อความสะดวกในการพิมพ์ลองสร้าง symlink สั้น ๆ - deb ของฉันเรียกว่าgp6-full-linux-demo-r11100.debคุณอาจแตกต่างกัน:
    • ln -s gp6-full-linux-demo-r11100.deb gp6.deb

1. ตรวจสอบสถาปัตยกรรมและการอ้างอิงของ deb

อันดับแรกเราตรวจสอบการขึ้นต่อกันของ deb โดยไม่ต้องติดตั้ง

  • 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 Version

  • ดังนั้นนี่คือแอปพลิเคชั่น i386 และการอ้างอิงทั้งหมดก็จะเป็น i386

  • สิ่งแรกที่จะทำคือการติดตั้งia32-libsแพคเกจ i386 เข้ากันได้ถ้าคุณยังไม่ได้
    • sudo apt-get install ia32-libs
  • ลองคัดลอกและวางการอ้างอิงของแพ็คเกจในไฟล์ข้อความด้วยในภายหลัง

2. "แตกไฟล์" deb ลงในไฟล์เก็บถาวร tar และตรวจสอบเนื้อหา

  • ลองแตก deb กับไฟล์เก็บถาวร tar ทันทีเพื่อให้เราสามารถตรวจสอบเนื้อหาได้โดยไม่ต้องติดตั้ง:
    • dpkg-deb --fsys-tarfile gp6.deb > gp6.tar
  • และเปิด File Manager (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 (พร้อมไอคอนเพชร - "เกียร์") และlib-xxxxไฟล์จำนวนมากรวมอยู่ในโฟลเดอร์
    • นี่เป็นเรื่องปกติสำหรับโปรแกรมแบบไบนารีเท่านั้น พวกเขาพยายามที่จะรวมรุ่นของห้องสมุดเฉพาะที่พวกเขาต้องการเนื่องจากอาจไม่สามารถใช้ได้จากที่เก็บของการกระจายที่เฉพาะเจาะจง
  • นอกเหนือจากไลบรารีและia32-libsแพ็คเกจเหล่านี้แล้วการติดตั้งแบบ 32 บิตส่วนใหญ่ควรได้รับการติดตั้ง แทนที่จะติดตั้งการพึ่งพาที่เราเห็นในข้อมูลไฟล์ deb ผ่าน - apt-getซึ่งอาจทำให้เกิดปัญหา - ลองคิดดูว่าถ้าเราไม่มีอะไรจริง

    • กลับไปที่เทอร์มินัลและเปลี่ยนเป็นไดเรกทอรี GuitarPro ด้วย cd /opt/GuitarPro6

การใช้ ldd

  • ประเภทldd GuitarPro | grep foundและผลลัพธ์จะเป็นlibportaudio.so.2 => not 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 ออกจาก File Manager

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)
Shahe Tajiryan

ฉันพยายามที่จะติดตั้งบนคอมพิวเตอร์เครื่องอื่น (12.10 64bit) และฉันวิ่งเข้าไปในข้อผิดพลาดอื่น ๆ และนี่คงได้: bit.ly/X7nvJ5 แค่อยากจะแบ่งปันที่นี่ถ้าใครก็ตามประสบปัญหา
Jeggy

ช่างเป็นคำตอบที่วิเศษมาก สิ่งนี้ทำงานได้อย่างสมบูรณ์บน Ubuntu 14.10 64- บิต ฉันหวังว่าฉันจะสามารถโหวตมากกว่าหนึ่งครั้ง ... 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เพื่อลบ Guitar 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/applicationsGuitarPro6.desktop

ตอนนี้ทุกอย่างทำงานได้และฉันสามารถหา Guitar Pro ได้อย่างรวดเร็ว


1
นั่นเป็นทางออกที่น่ากลัว
tgm4883

1
มีทางออกอะไรที่ดีกว่า ฉันลองแล้วคนอื่น ๆ ก็ตอบแล้ว คุณรู้จักอันไหนดีกว่า และอันนี้ใช้งานได้จริง
Jeggy

คุณได้ติดตั้งการพึ่งพาทั้งหมดของ 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แล้ว และมันก็ใช้ได้ดีเหมือนกัน
Jeggy

sudo geditในอนาคตคุณไม่ควรใช้ คุณควรใช้gksu geditหรือgksudo geditแทน ใช้โปรแกรมกราฟิกเป็นrootใช้ธรรมดาsudoเมื่อโปรแกรมประยุกต์ที่มีไฟล์ต่อผู้ใช้ตั้งค่าสามารถเลอะโปรแกรมเหล่านั้นไม่ใช่สำหรับrootผู้ใช้
Eliah Kagan

1

ฉันได้รับการดิ้นรนกับเรื่องนี้ในช่วงไม่กี่วันที่ผ่านมา ฉันได้พบวิธีที่ดีที่สุดคือใช้ปฏิบัติการ Windows ภายใต้ไวน์ ดูเหมือนจะแข็งกว่ามาก


0

ในการตอบคำถามของคุณให้หยุดapt-get -f installการลบซอฟต์แวร์ที่คุณต้องการเพิ่ม--no-removeไปยังคำสั่งที่คุณใช้ การดำเนินการนี้จะยกเลิกการเรียกใช้ apt-get ทันทีหากมีสิ่งใดที่จะลบและซอฟต์แวร์ของคุณจะไม่ถูกลบออก

อย่างไรก็ตามสิ่งที่คุณกำลังมองหาคือวิธีที่จะทำให้ระบบทำงานตามปกติ แต่ก็มีซอฟต์แวร์นั้นติดตั้งอยู่ด้วย สิ่งที่คุณจะต้องทำคือดูผลลัพธ์จากเมื่อคุณบังคับให้ติดตั้งแพคเกจด้วย dpkg และดูว่ามันล้มเหลวอะไรแล้วติดตั้งการพึ่งพานั้นโดยใช้

apt-get install package-name

ในกรณีของคุณคือ gksu (โดยเฉพาะ gksu) ตอนนี้คุณอาจพบว่าเมื่อคุณพยายามติดตั้ง gksu ว่ามีการพึ่งพาเช่นกันที่จะต้องติดตั้ง เนื่องจากคุณกำลังบังคับให้ติดตั้งแพ็คเกจ 32 บิตคุณจะต้องติดตั้งการพึ่งพาเหล่านี้ด้วยตนเองโดยใช้คำสั่งเดียวกันข้างต้น


0

ฉันเพียงแค่ติดตั้ง gp6 ภายใต้ LinuxMint 14 32-Bit รันโปรแกรมอัพเดตและแก้ไขปัญหากับ zlib โดยคัดลอก zlib.so1.2.27 ไปที่ / opt / GuitarPro เปลี่ยนชื่อเป็น zlib.so.1 ติดตั้ง gksu และการพึ่งพา เพื่อนำมาปรับปรุงให้ทันสมัย หลังจากนั้นฉันเชื่อมต่อ 64-bit Linux กับ 3s-Bit Linux ผ่าน Fish: // ชื่อผู้ใช้ @ mymachineIP / เลือกใน Dolphin และคัดลอก GuitarPro6 dir ทั้งหมดไปที่ dir บ้านของฉันบน Linux 64 บิตและจากนั้นไปยัง / opt โรงงาน


-2

ลองสิ่งนี้:

ดาวน์โหลดจากhttp://www6.guitar-pro.com/th/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

นั่นไม่ได้ผลดีกว่าที่ฉันเคยทำมาก่อน :(
Jeggy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.