Repacking Yandex Music
2025-09-16_08:13
Надо было поставить yandexmusic в Manjaro. Нашёл утилиту debtap
debtap Yandex_Music_amd64_5.68.0.deb
sudo pacman -U yandexmusic-5.68.0.r17465047-1-x86_64.pkg.tar.zst
loading packages...
resolving dependencies...
warning: cannot resolve "gtk", a dependency of "yandexmusic"
:: The following package cannot be upgraded due to unresolvable dependencies:
yandexmusic
:: Do you want to skip the above package for this upgrade? [y/N] y
looking for conflicting packages...
there is nothing to do
Не ставится, потому что требуется gtk. Но он в системе у меня есть. Открываешь zst - файл, открываешь .PKGINFO, удаляешь все строки содержащие ‘gtk’. Сохранение. Далее установка идёт без проблем.
Скрипт для пересборки repack-yandex-music.sh:
#!/bin/bash
set -eu
remove_gtk_from_archive() {
SOURCE_ARCHIVE=${1?Need path to archive}
SOURCE_ARCHIVE="$(readlink -f "${SOURCE_ARCHIVE}")"
[ -f "${SOURCE_ARCHIVE}" ] || {
echo "Need path to archive"
exit 1
}
NEW_FILE="${SOURCE_ARCHIVE/tar/new.tar}"
TEMPD=$(mktemp -d)
cd "$TEMPD"
tar -I unzstd -xvf "${SOURCE_ARCHIVE}"
sed -i '/gtk/d' .PKGINFO
find . -type f -printf '%P\0' | tar -I zstd -c -f "${NEW_FILE}" --null --files-from -
echo "New file: ${NEW_FILE}"
echo "=========================="
echo "sudo pacman -U ${NEW_FILE}"
}
SOURCE_DEB="${1?Need path to deb}"
SOURCE_DEB="$(readlink -f "${SOURCE_DEB}")"
DIR_SOURCE="$(dirname "$SOURCE_DEB")"
debtap -Q -o "$DIR_SOURCE" "$SOURCE_DEB"
source_archive="$(find "$DIR_SOURCE" -type f -name '*.zst' -exec readlink -f {} \;)"
remove_gtk_from_archive "$source_archive"
#linux