如何在没有 Flatpak 的情况下在 Ubuntu 20.04 中安装 Cozy Audiobook Player

yaa*_*a__ 6 packaging deb github software-installation 20.04

我想从其 GitHub 存储库为Cozy创建一个 .deb 文件。我该怎么做?我不想使用 Flathub 版本。

我在 Ubuntu 20.04 上。

N0r*_*ert 10

无需手动创建 deb 包。

舒适稳定版本PPA已经可用。
它为 Ubuntu 20.10 (groovy, EOL), 21.04 (hirsute) 和 21.10 (impish, development) 提供 deb-packages - 这里 Cozy 可以像安装一样简单

sudo add-apt-repository ppa:cozy-team/cozy
sudo apt-get update
sudo apt-get install cozy
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 20.04 LTS 上安装需要一些技巧。您将需要手动安装libhandy-1-0,并安装更新版本python3-peeweepython3-mutagen(否则舒适不会加载在M4B有声读物章节):

sudo add-apt-repository ppa:apandada1/libhandy-1
sudo apt-get install libhandy-1-0

cd ~/Downloads
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/p/peewee/python3-peewee_3.13.1+dfsg-1_amd64.deb
sudo apt-get install ./python3-peewee_3.13.1+dfsg-1_amd64.deb

wget -c http://archive.ubuntu.com/ubuntu/pool/universe/m/mutagen/python3-mutagen_1.45.0-1_all.deb
sudo apt-get install ./python3-mutagen_1.45.0-1_all.deb

sudo add-apt-repository ppa:cozy-team/cozy
sudo sed -i "s/focal/hirsute/" /etc/apt/sources.list.d/cozy-team-ubuntu-cozy-focal.list
sudo apt-get update
sudo apt-get install cozy
Run Code Online (Sandbox Code Playgroud)

然后您可以从 dash 或使用com.github.geigi.cozy命令启动 Cozy 。


Arc*_*ahi 4

看来OP不想使用PPA,这可以在N0rbert的回答中找到。有一种方法可以直接从源代码生成 .deb 包,而无需使用 PPA。

  1. 安装构建依赖项。

    sudo apt-get update
    sudo apt-get install git build-essential appstream debhelper desktop-file-utils libgranite-dev libdazzle-1.0-dev meson libgtk-3-dev python3 python3-pip python3-setuptools python3-distro python3-requests python3-tz python3-gst-1.0 python3-cairo python3-apsw sed
    
    Run Code Online (Sandbox Code Playgroud)

    Ubuntu 20.04 LTS 不提供 libhandy-1,因此我们需要使用 Ubuntu 21.04 的源代码在本地构建它:

    sudo apt-get install debhelper-compat gtk-doc-tools libgirepository1.0-dev libgladeui-dev libglib2.0-doc libgnome-desktop-3-dev libgtk-3-doc libxml2-utils valac xvfb
    cd ~/Downloads
    wget -c http://archive.ubuntu.com/ubuntu/pool/main/libh/libhandy-1/libhandy-1_1.2.0.orig.tar.gz
    tar -xf libhandy-1_1.2.0.orig.tar.gz
    cd libhandy-1-1.2.0
    wget -c http://archive.ubuntu.com/ubuntu/pool/main/libh/libhandy-1/libhandy-1_1.2.0-1.debian.tar.xz
    tar -xf libhandy-1_1.2.0-1.debian.tar.xz
    rm libhandy-1_1.2.0-1.debian.tar.xz
    
    dpkg-buildpackage -uc -us -d
    sudo apt-get install ../gir1.2-handy-1_1.2.0-1_amd64.deb ../libhandy-1-0_1.2.0-1_amd64.deb ../libhandy-1-dev_1.2.0-1_amd64.deb
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在 Ubuntu 20.04 中,手动下载最新版本python3-peeweepython3-mutagen(在更高版本的 Ubuntu 中,您可以从存储库安装它。),

    cd ~/Downloads
    wget -c http://old-releases.ubuntu.com/ubuntu/pool/universe/p/peewee/python3-peewee_3.13.1+dfsg-1_amd64.deb
    wget -c http://archive.ubuntu.com/ubuntu/pool/universe/m/mutagen/python3-mutagen_1.45.1-2_all.deb
    
    Run Code Online (Sandbox Code Playgroud)

    安装它们

    sudo apt-get install ./python3-peewee_3.13.1+dfsg-1_amd64.deb
    sudo apt-get install ./python3-mutagen_1.45.1-2_all.deb
    
    Run Code Online (Sandbox Code Playgroud)
  3. 安装所有运行时依赖项

    sudo apt-get install gobject-introspection python3 python3-distro python3-gi-cairo python3-requests python3-packaging python3-tz python3-mutagen python3-gst-1.0 python3-gi python3-cairo python3-apsw file libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-libav gir1.2-granite-1.0 gir1.2-dazzle-1.0
    
    Run Code Online (Sandbox Code Playgroud)
  4. 从 GitHub下载源代码:

    cd ~/Downloads
    git clone https://github.com/geigi/cozy.git -b 1.2.0
    
    Run Code Online (Sandbox Code Playgroud)
  5. debian/http://github.com/apandada1/cozy/tree/deb-dir下载该目录并将其放置在cosy的源目录中。

    cd ~/Downloads
    git clone https://github.com/apandada1/cozy -b deb-dir debian
    mv debian/debian cozy/
    
    Run Code Online (Sandbox Code Playgroud)
  6. 现在构建 .deb 包并安装它

    cd ~/Downloads/cozy
    dpkg-buildpackage -uc -us -b
    
    sudo apt-get install ../cozy_1.2.0_all.deb
    
    Run Code Online (Sandbox Code Playgroud)