Pemecahan Masalah

Masalah pembuatan paket

Membangun ulang flatpak terhadap komponen lokal

Jika Anda menemukan masalah build dengan suatu paket di flatpak Anda, Anda perlu membangun flatpak menggunakan checkout git lokal untuk paket tersebut agar dapat menerapkan perbaikan di sana:

  • Lakukan checkout paket dari dist-git menggunakan fedpkg clone

  • Gunakan fedpkg switch-branch untuk berpindah ke cabang f42 (jika berbeda secara signifikan dari rawhide)

  • Lakukan perubahan Anda, dan pastikan sumber telah diunduh dengan fedpkg sources

  • Bangun secara lokal dengan flatpak-module build-rpms-local /path/to/checkout

  • Jika diperlukan, bangun paket tambahan dengan flatpak-module build-rpms-local --auto

  • Setelah berhasil, instal secara lokal dengan flatpak-module build-container-local --install

Debug cepat untuk build prefix=/app

Jika Anda menemui masalah di mana suatu paket gagal dibangun dengan prefix=/app dan perlu melakukan debug secara mendetail,

  • Bangun secara lokal dengan flatpak-module build-rpms-local --auto (atau tentukan paket yang gagal berdasarkan nama SRPM)

  • Jika build gagal, output konsol akan menampilkan berkas log dan juga menyertakan petunjuk untuk masuk ke buildroot:

output konsol
  python-pyside6: Build failed
      x86_64/work/rpms/python-pyside6/build.log
      x86_64/work/rpms/python-pyside6/hw_info.log
      x86_64/work/rpms/python-pyside6/installed_pkgs.log
      x86_64/work/rpms/python-pyside6/mock_output.log
      x86_64/work/rpms/python-pyside6/root.log
      x86_64/work/rpms/python-pyside6/state.log
      chroot: /var/lib/mock/flatpak-module-f42-x86_64-0/root/
      Enter chroot: mock -r x86_64/work/rpms/mock.cfg --uniqueext 0 --shell

Berkas di luar /app

Alasan paling umum untuk kegagalan pembuatan paket adalah karena ada berkas dalam paket yang diinstal dengan jalur tetap /usr alih-alih menggunakan makro seperti %{_prefix}, %{_libdir}, dan sebagainya. Hal ini mungkin memerlukan penyesuaian berkas spesifikasi, penambahan variabel tambahan pada perintah make, atau dalam beberapa kasus langka, melakukan patch pada berkas Makefile.

Masalah pembuatan container

Kegagalan instalasi paket

Saat instalasi paket untuk membangun container Flatpak, kumpulan paket dibatasi hanya untuk paket di runtime dan paket yang sudah dibangun ulang untuk flatpak. Paket lainnya di Fedora akan diabaikan. Jika Anda melihat pesan tentang dependensi yang hilang padahal Anda tahu bahwa dependensi tersebut ada di Fedora, hal ini terjadi karena dependensi tersebut diabaikan akibat pembatasan ini.

flatpak-module build-rpms --auto seharusnya membangun semua dependensi yang diperlukan dan tidak ada dalam runtime untuk flatpak. Namun, perubahan pengemasan selanjutnya dapat menambahkan dependensi baru, yang berarti Anda mungkin perlu menjalankannya beberapa kali.

Anda juga dapat melihat kegagalan jika suatu paket dalam runtime mendapatkan dependensi baru dan runtime belum diperbarui. Jika paket dengan dependensi yang menyebabkan kegagalan dnf bukan bagian dari flatpak Anda, harap buat laporan masalah di Pelacak masalah Fedora Flatpaks.