GNU/Linux >> Belajar Linux >  >> Ubuntu

Ubuntu – Versi Harfbuzz Pango-error Terlalu Lama?

Googling, saya telah melihat bahwa kesalahan ini terjadi dengan perangkat lunak berbeda yang menggunakan perpustakaan Pango. Pango adalah pustaka mesin tata letak teks yang bekerja dengan mesin pembentuk HarfBuzz untuk menampilkan teks multibahasa.

Jika perangkat lunak adalah alat baris perintah, atau diluncurkan dari terminal, kesalahannya akan terlihat seperti ini:

:~$ sudo ah

(ah:2782): Pango-ERROR **: 16:54:45.844: Harfbuzz version too old (1.3.1)

Trace/breakpoint trap
:~$

Bagaimana cara memperbaiki kesalahan ini?

Terima kasih sebelumnya

Jawaban yang Diterima:

Sangat mudah untuk menyadari bahwa kami menghadapi masalah kompatibilitas antara versi perpustakaan.

Mari kita ambil lingkungan dengan masalah ini untuk melihat solusinya:

  • OS:Ubuntu 20.04 (amd64)
  • Perangkat Lunak:Vectr 0.1.15 (Grafik Vektor
    Editor)

Dalam hal ini ketika mencoba membukanya, tidak ada yang terjadi, tidak terbuka, tetapi juga tidak menunjukkan kesalahan, kesalahan hanya muncul ketika mencoba meluncurkan Vectr dari terminal (./vectr ).

Pertama, mari kita lihat dependensi yang mungkin menyebabkan kesalahan:

:~/Downloads/Vectr$ ldd vectr | grep pango

libpangocairo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f4ab3581000)
libpango-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f4ab33e7000)
libpangoft2-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f4ab1b3b000)

Ini dapat dilakukan dengan berbagai cara, tanyakan saja pada Google.

Jika Anda ingin melihat detail library yang telah Anda instal, Anda dapat menggunakan perintah berikutnya. Perhatikan bahwa kolom kedua menunjukkan versi:

:~/Downloads/Vectr$ dpkg -l | grep libpango

ii  libpango-1.0-0:amd64                       1.44.7-2ubuntu4                        amd64        Layout and rendering of internationalized text
ii  libpango-1.0-0:i386                        1.44.7-2ubuntu4                        i386         Layout and rendering of internationalized text
ii  libpangocairo-1.0-0:amd64                  1.44.7-2ubuntu4                        amd64        Layout and rendering of internationalized text
ii  libpangocairo-1.0-0:i386                   1.44.7-2ubuntu4                        i386         Layout and rendering of internationalized text
ii  libpangoft2-1.0-0:amd64                    1.44.7-2ubuntu4                        amd64        Layout and rendering of internationalized text
ii  libpangoft2-1.0-0:i386                     1.44.7-2ubuntu4                        i386         Layout and rendering of internationalized text

Solusi pertama

Karena kesalahan hanya mempengaruhi satu perangkat lunak, saya rasa tidak nyaman untuk menurunkan versi perpustakaan yang diinstal pada sistem (solusi kedua ), yang dapat memengaruhi perangkat lunak lain.

Jadi, solusi ini terdiri dari menyalin perpustakaan (versi lama) ke root folder tempat perangkat lunak itu berada, dalam kasus saya ini portabel dan saya memilikinya di Downloads/Vectr .

Kami telah melihat dependensi yang tepat, kami akan mengunduhnya secara manual (pilih arsitektur Anda dan unduh .deb):

  • libpango-1.0-0 (1.42.4-7)
  • libpangocairo-1.0-0 (1.42.4-7)
  • libpangoft2-1.0-0 (1.42.4-7)

Seperti yang kita lihat sebelumnya, arsitektur saya adalah amd64, namun, sistem juga menginstal versi i386 dari perpustakaan. Karena prosedur ini manual, dan portabel, saya memutuskan untuk hanya menggunakan amd64, dan itu berhasil untuk saya. Namun jika terjadi kesalahan, coba gunakan kedua arsitektur tersebut secara bersamaan.

Buka .deb dengan Pengelola Arsip , dan buka data.tar.xz file, lalu buka /./usr/lib/x86_64-linux-gnu/ dan ekstrak kedua file tersebut di folder root perangkat lunak (Downloads/Vectr ). Ulangi untuk setiap file .deb yang diunduh .

Setelah itu perangkat lunak harus berjalan normal. Dan jika Anda menjalankan:

:~/Downloads/Vectr$ ldd vectr | grep pango

libpangocairo-1.0.so.0 => /home/myuser/Downloads/Vectr/./libpangocairo-1.0.so.0 (0x00007fc6b0ac8000)
libpango-1.0.so.0 => /home/myuser/Downloads/Vectr/./libpango-1.0.so.0 (0x00007fc6b0931000)
libpangoft2-1.0.so.0 => /home/myuser/Downloads/Vectr/./libpangoft2-1.0.so.0 (0x00007fc6af084000)

Anda akan melihat bagaimana alamat dependensi berubah dari /usr/lib/x86_64-linux-gnu/ ke /home/myuser/Downloads/Vectr/ .

Solusi kedua

Turunkan versi perpustakaan ini (ingat, metode ini dapat menyebabkan malfungsi pada perangkat lunak lain).

Terkait:Bagaimana cara membuat direktori hanya keluaran pohon?

Varian satu:(Saya tidak bisa mencoba yang ini)

Instal versi lama dari repositori yang Anda miliki di sumber Anda.

Buat daftar versi perpustakaan yang tersedia:

:~$ apt-cache madison libpango-1.0-0

libpango-1.0-0 | 1.44.7-2ubuntu4 | http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

Dalam kasus saya, saya hanya memiliki versi saat ini, dan itulah yang menyebabkan konflik. Jika Anda mendapatkan versi lain, Anda dapat menurunkan versi dengan perintah berikut:

:~$ sudo apt install pkg-name=old-version

Ingat bahwa ada dua perpustakaan lagi yang harus diinstal (libpangocairo-1.0-0 dan libpangoft2-1.0-0). Saya tidak tahu apakah ini diinstal secara otomatis sebagai dependensi, keraguan ini juga berlaku untuk versi i386.

Varian dua:(Saya memang mencoba yang ini)

Bagi yang belum memiliki versi sebelumnya, Anda harus mengunduhnya (.deb) seperti yang ditunjukkan dalam Solusi Pertama . Dan untuk menghindari kesalahan besar, versi untuk i386 harus diunduh juga (ingat bahwa dalam contoh ini kita memiliki Ubuntu amd64 ).

Setelah mengunduh file, buka terminal di folder tempat Anda menyimpannya, kemudian Anda dapat melakukan downgrade dengan perintah berikut:

:~$ sudo dpkg -i libpango*.deb

Ini mungkin berakhir dengan kesalahan, tetapi pada akhirnya perangkat lunak berjalan dengan baik, dan tampaknya semuanya berfungsi dengan baik. Konsekuensi masa depan saya belum tahu.

Untuk membatalkan downgrade ini jalankan sudo apt update , lalu sudo apt upgrade dan Anda pasti membutuhkan sudo apt --fix-broken install .

Kemudian jika Anda ingin membuat perubahan permanen, dan menghindari pembaruan tidak disengaja dari perpustakaan ini, Anda dapat menggunakan perintah:

:~$ sudo apt-mark hold package-name

Ini mencegah perpustakaan dari otomatis diinstal, diperbarui, ditingkatkan, atau dihapus selama pemutakhiran sistem. Dan Anda dapat membatalkannya dengan perintah:

:~$ sudo apt-mark unhold package-name

Ubuntu
  1. Versi Xpra Di Ubuntu 16.04?

  2. Memperbarui Rstudio Di Ubuntu 16.04?

  3. Bagaimana Mempartisi Imac Lama??

  1. Perbarui versi Kernel di server Ubuntu

  2. Perbarui Ghostscript Di Ubuntu 14.04?

  3. Versi Ubuntu Apa yang Cocok Di CD-r?

  1. Cara Memeriksa Versi Ubuntu Anda

  2. Cara Menghapus Kernel Lama di Ubuntu 16.04, 18.04, dan 19.04

  3. Pemeriksaan Versi Perangkat Lunak Ubuntu 20.04