标签: checkinstall

将源代码编译成 DEB 包

我在安装和删除已编译的软件时一直遇到问题,所以我决定将软件从源代码构建到 .deb 包中,以便于安装/删除。

作为最终用户,我想知道一种将源代码构建到 .deb 包中的简单快捷的方法。

我试过了:

packaging deb install-from-source checkinstall

35
推荐指数
4
解决办法
5万
查看次数

checkinstall 询问版本

我有一个使用 checkinstall 安装的 autoconf/automake/autoeverything 项目。当我去安装它时,我会看到这个

This package will be built according to these values: 

0 -  Maintainer: [ brooks94@foo.com ]
1 -  Summary: [ Package created with checkinstall 1.6.2 ]
2 -  Name:    [ mypkg ]
3 -  Version: [  ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ mypkg ]
9 -  Alternate source location: [  ]
10 …
Run Code Online (Sandbox Code Playgroud)

package-management autotools checkinstall

8
推荐指数
1
解决办法
1570
查看次数

从源代码构建 .deb 包,而不安装它

假设我有一个安装程序或我想要安装的某个程序的源 tarball。(没有可用的 Debian 软件包。)首先,我想.deb从中创建一个软件包,以便将来能够干净地删除已安装的程序(请参阅卸载从源代码构建的应用程序如果我从源代码构建一个软件包如何我可以完全卸载或删除吗?)。此外,使用包安装可以防止它破坏其他包中的文件,如果您运行安装程序或sudo make install.

检查安装

通过阅读那里和其他地方的答案,我收集到通常的解决方案是使用checkinstall来构建包。不幸的是,它似乎并不能checkinstall阻止其他软件包破坏系统文件。例如,根据Reverting issues Caused by checkinstall with gcc buildmake install

我使用安装创建了一个 Debian 软件包sudo checkinstall -D make install

[...]我使用 Synaptic Package Manager 将其删除。事实证明,[删除]创建的包 checkinstall 试图make install删除安装过程触及的每个文件,包括共享 gcc 库,如 /lib64/libgcc_s.so。

然后我尝试告诉checkinstall构建包而不安装它,希望绕过这个问题。我创建了一个虚拟 Makefile:

install:
    echo "Bogus" > /bin/qwertyuiop
Run Code Online (Sandbox Code Playgroud)

然后跑了sudo checkinstall --install=no。即使未安装该包,该文件也/bin/qwertyuiop 已创建。

就我而言,我不信任安装程序 /make install不会覆盖系统文件checkinstall,因此排除了这种使用。

如何构建该软件包而不 …

package-management packaging install-from-source checkinstall

5
推荐指数
2
解决办法
7053
查看次数

Checkinstall 不会全局安装软件包

我正在尝试ffmpeg从源代码编译并创建deb包,以便全局安装 ffmpeg 并可以使用dpkg -r命令将其删除。

这是我的命令。

# Installing FFmpeg
cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libtheora \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree
PATH="$HOME/bin:$PATH" make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default
hash -r
Run Code Online (Sandbox Code Playgroud)

一切都编译成功,deb 包被创建,但是当我尝试使用ffmpeg我得到

ffmpeg: command …
Run Code Online (Sandbox Code Playgroud)

package-management apt compiling ffmpeg checkinstall

4
推荐指数
1
解决办法
1372
查看次数

为什么不再维护 checkinstall?

该命令checkinstall已在本论坛多次推荐,作为make install. 但是,当您访问官方网站时,“最近新闻”部分显示 2016 年 12 月是最近的日期。


编辑:我阅读了帖子是否有任何 checkinstall 替代方法?,然后我克隆了 .git 存储库checkinstall。截至 2019 年 4 月,该git log命令显示在过去 3 年中每年只有大约 1 次提交。

Q1:提交的数量是否足以维护包?
Q2:为什么Github上没有checkinstall?在这样的平台上,您无需将整个 repo 克隆到您的计算机上,就可以看到最后一次提交和最新版本。

uninstall apt checkinstall software-installation 18.04

3
推荐指数
1
解决办法
4053
查看次数