当前位置: 首页 > news >正文

源码安装工具checkinstall使用

每当从源码包编译程序时,安装过程很愉快,但当你想删除时,就很费脑筋了,你可能要去找你当时编译的目录执行make unistall,当然更可能的是,你早就把源码包给删除了,对于强迫症来说,这显然不能忍。
checkinstall工具就是来解决这个问题的:

NAME
checkinstall – Track installation of local software, and produce a binary manageable with your package management software.

SYNOPSIS
checkinstall [options] [install command]
DESCRIPTION
checkinstall is a program that monitors an installation procedure (such as make install, install.sh ), and creates a standard
package for your distribution (currently deb, rpm and tgz packages are supported) that you can install through your distribution’s
package management system (dpkg, rpm or installpkg).
Note that for most useful actions, checkinstall must be run as root.

这个命令可以生成一个软件包。
常用选项:
-D 生成Debian package.
-R 生成RPM package.
-S 生成Slackware Package.
–install 创建包时是否安装
-y 所有选项都默认选是
–pkgname 包名
–pkgversion 包版本
–pakdir 在哪保存包
–nodoc 不要包含文档
-si 交互式运行
–strip stripping可执行进程
–stripso stripping共享库
–addso 把共享库加到/etc/ld.so.conf
–exclude 去除文件或目录
–include 强制包含文件或目录
–inspect 检查包的文件列表

比如

checkinstall --install=no --nodoc --strip --stripso

指定不安装包,不包含文档,strop所有进程和库
执行后会交互的让你确定一些信息,默认配置是从 /etc/checkinstallrc 读取的。
结果如下:

**********************************************************************Done. The new package has been saved to/root/project/gdb-12.1/bentutubuild/aarch64-linux-gdb-utils_1.0-1_amd64.debYou can install it in your system anytime using:dpkg -i aarch64-linux-gdb-utils_1.0-1_amd64.deb**********************************************************************

实际他还是执行了make install,只是没安装deb包。
需要注意的是,若不是常规的安装命令需要在最后指定,例如单独安装gdbserver:

 checkinstall --install=no --nodoc --strip --stripso make install-gdbserver

使用dpkg查看包中文件内容:

root@bentutu:~/project/gdb-12.1/linkbuild# dpkg -c gdbserver_1.0-1_arm64.deb
drwxr-xr-x root/root         0 2023-05-02 01:41 ./
drwxr-xr-x root/root         0 2023-05-02 01:41 ./opt/
drwxr-xr-x root/root         0 2023-05-02 01:41 ./opt/linkcopy/
drwxr-xr-x root/root         0 2023-05-02 01:41 ./opt/linkcopy/bin/
-rwxr-xr-x root/root   8465040 2023-05-02 01:41 ./opt/linkcopy/bin/gdbserver
drwxr-xr-x root/root         0 2023-05-02 01:41 ./opt/linkcopy/lib/
-rwxr-xr-x root/root   2311320 2023-05-02 01:41 ./opt/linkcopy/lib/libinproctrace.so

可以看到路径就是安装的路径。
制作好deb包之后就可以通过 apt-get install -fdpkg -i来安装了.
下面是先安装后删除的实例:

root@bentutu:~/project/gdb-12.1/bentutubuild# dpkg -i aarch64-linux-gdb-utils_1.0-1_amd64.deb
(Reading database ... 36525 files and directories currently installed.)
Preparing to unpack aarch64-linux-gdb-utils_1.0-1_amd64.deb ...
Unpacking aarch64-linux-gdb-utils (1.0-1) ...
Setting up aarch64-linux-gdb-utils (1.0-1) ...
root@bentutu:~/project/gdb-12.1/bentutubuild# ls /opt/
bentutucopy  xwdroot@bentutu:~/project/gdb-12.1/bentutubuild# dpkg -l|grep gdb
ii  aarch64-linux-gdb-utils            1.0-1                              amd64        an gdb tools for connect to arm64 gdbserver
ii  cgdb                               0.6.7-2build6                      amd64        curses-based interface to the GNU Debugger (GDB)
ii  gdb                                9.2-0ubuntu1~20.04.1               amd64        GNU Debugger
ii  gdbserver                          9.2-0ubuntu1~20.04.1               amd64        GNU Debugger (remote server)
ii  libgdbm-compat4:amd64              1.18.1-5                           amd64        GNU dbm database routines (legacy support runtime version)
ii  libgdbm6:amd64                     1.18.1-5                           amd64        GNU dbm database routines (runtime version)root@bentutu:~/project/gdb-12.1/bentutubuild# sudo apt-get remove aarch64-linux-gdb-utils
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:aarch64-linux-gdb-utils
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 41.2 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 36661 files and directories currently installed.)
Removing aarch64-linux-gdb-utils (1.0-1) ...
dpkg: warning: while removing aarch64-linux-gdb-utils, directory '/opt' not empty so not removed
root@bentutu:~/project/gdb-12.1/bentutubuild# ls /opt/
xwdroot@bentutu:~/project/gdb-12.1/bentutubuild# dpkg -l|grep gdb
ii  cgdb                               0.6.7-2build6                      amd64        curses-based interface to the GNU Debugger (GDB)
ii  gdb                                9.2-0ubuntu1~20.04.1               amd64        GNU Debugger
ii  gdbserver                          9.2-0ubuntu1~20.04.1               amd64        GNU Debugger (remote server)
ii  libgdbm-compat4:amd64              1.18.1-5                           amd64        GNU dbm database routines (legacy support runtime version)
ii  libgdbm6:amd64                     1.18.1-5                           amd64        GNU dbm database routines (runtime version)
root@bentutu:~/project/gdb-12.1/bentutubuild#

至此,安装的文件可以较好的管理了。
其他的dpkg常用命令:

dpkg -i name.deb #安装软件包
dpkg -I name.deb #从包里获取deb包的信息/gg
dpkg -c name.deb #查看包内的内容,看起来就跟压缩包一样
dpkg -s name #查看已安装的包裹信息
dpkg -r name #删除一个已安装的包裹
dpkg -P name #删除一个已安装的包裹,包括配置文件

相关文章:

源码安装工具checkinstall使用

每当从源码包编译程序时,安装过程很愉快,但当你想删除时,就很费脑筋了,你可能要去找你当时编译的目录执行make unistall,当然更可能的是,你早就把源码包给删除了,对于强迫症来说,这显…...

离散数学集合论

集合论 主要内容 集合基本概念 属于、包含幂集、空集文氏图等 集合的基本运算 并、交、补、差等 集合恒等式 集合运算的算律,恒等式的证明方法 集合的基本概念 集合的定义 集合没有明确的数学定义 理解:由离散个体构成的整体称为集合&#xff0c…...

TypeScript 基础

类型注解 类型注解:约束变量的类型 示例代码: let age:number 18 说明:代码中的 :number 就是类型注解 解释:约定了类型,就只能给变量赋值该类型的值,否则,就会报错 错误演示:…...

MySQL InnoDB引擎 和 Oracle SGA

MySQL InnoDB引擎和Oracle SGA有以下异同: 异同点: 两者都是用来管理数据存储和访问的。 它们都可以通过调整参数来优化性能。 它们都支持事务处理和ACID属性。 它们都可以通过备份和恢复来保护数据。 异点: MySQL InnoDB引擎是一种存储…...

JAVA开发与运维(web生产环境部署)

web生产环境部署,往往是分布式,和开发环境或者测试环境我们一般使用单机不同。 一、部署内容 1、后端服务 2、后台管理系统vue 3、小程序 二、所需要服务器 5台前端服务器 8台后端服务 三、所需要的第三方组件 redismysqlclbOSSCDNWAFRocketMQ…...

普通人,自学编程,5个必备步骤

天给大家分享个干货哈 普通人自学编程 想学成找到一份工作甚至进大厂 非常有效且必备的5个步骤 文章最后 还给大家提供了一些免费的学习资料 记得提前收藏起来 相信很多人在最开始学编程的时候 上来就是去网上找一套视频 或者买一本书直接开干 这种简单粗暴的方法其实是不对的 …...

kubernetes安全框架RBAC

目录 一、Kubernetes 安全概述 二、鉴权、授权和准入控制 2.1 鉴权(Authentication) 2.2 授权(Authorization) 2.3 准入控制 三、基于角色的权限访问控制: RBAC 四、案例:为指定用户授权访问不同命名空间权限 一、Kubernetes 安全概述 K8S安全控…...

【大数据面试题大全】大数据真实面试题(持续更新)

【大数据面试题大全】大数据真实面试题(持续更新) 1)Java1.1.Java 中的集合1.2.Java 中的多线程如何实现1.3.Java 中的 JavaBean 怎么进行去重1.4.Java 中 和 equals 有什么区别1.5.Java 中的任务定时调度器 2)SQL2.1.SQL 中的聚…...

Linux [常见指令 (1)]

Linux常见指令 ⑴ 1. 操作系统1.1什么事操作系统1.2选择指令的原因 2.使用工具3.Linux的指令操作3.1mkdir指令描述:用法:例子 mkdir 目录名例子 mkdir -p 目录1/ 目录2/ 目录3 3.2 touch指令描述:用法:例子 touch 文件 3.2pwd指令描述:用法:例子 pwd 3.4cd指令描述:用法:例子 c…...

进程控制下篇

进程控制下篇 1.进程创建 1.1认识fork / vfork 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程 #include<unistd.h> int main() {pid_t i fork;return 0; }当前进程调用fork&#xff0c;…...

PS学习笔记(零基础PS学习教程)

很多新手学习PS不知从何下手&#xff0c;做设计的第一阶段肯定是打牢基础&#xff0c;把工具用熟练&#xff1b;本期特别为大家整理了PS入门的学习笔记&#xff0c;把每个工具的用法整理了下来&#xff0c;在使用过程中有哪里不清楚的可以翻看来看看~ 一、ps的工作界面的介绍 …...

如何构建数据血缘系统

1、明确需求&#xff0c;确定边界 在进行血缘系统构建之前&#xff0c;需要进行需求调研&#xff0c;明确血缘系统的主要功能&#xff0c;从而确定血缘系统的最细节点粒度&#xff0c;实体边界范围。 例如节点粒度是否需要精确到字段级&#xff0c;或是表级。一般来说&#x…...

IPsec中IKE与ISAKMP过程分析(主模式-消息3)

IPsec中IKE与ISAKMP过程分析&#xff08;主模式-消息1&#xff09;_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析&#xff08;主模式-消息2&#xff09;_搞搞搞高傲的博客-CSDN博客 阶段目标过程消息IKE第一阶段建立一个ISAKMP SA实现通信双发的身份鉴别和密钥交换&…...

深度学习技巧应用10-PyTorch框架中早停法类的构建与运用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用10-PyTorch框架中早停法类的构建与运用,文章将介绍深度学习训练过程中的一个重要技巧—早停法,以及如何在PyTorch框架中实现早停法。文章将从早停法原理和实践出发,结合实际案例剖析早停法的优缺点及在PyTorch中的应…...

Linux文件系统权限

目录标题 文件权限文件和目录的一般权限文件的权限针对三类对象进行定义文件和目录中&#xff0c;r、w、x的作用 设置文件和目录的一般权限修改文件或目录的权限—chmod(change mode)命令权限值的表示方法—使用3位八进制数表示权限值的表示方法—使用字符串表示修改文件或目录…...

ctfshow之_萌新web1至web7

一、访问在线靶场ctfshow ctf.showhttps://ctf.show/challenges如下图所示&#xff0c;进入_萌新赛的web1问题&#xff1a; 如上图所示&#xff0c;页面代码提示id1000时&#xff0c;可以查询到flag&#xff0c;进行如下尝试&#xff1a; 如下图所示&#xff0c;传入参数id1时…...

HPDA的资料

HPDA&#xff0c;英文全称为High Performance Data Analysis&#xff0c;直译为高性能数据分析。 适用场景 机器学习大数据分析 技术挑战 大量的元数据操作数据的同步随机读写高IOPOS的小IO请求高带宽的文件请求 技术关键字 存算分离移动计算大I/O直通&#xff0c;小I/O聚…...

项目管理软件可以用来做什么?这篇文章说清楚了

项目管理软件是用来干嘛的&#xff0c;就得看对项目的理解。项目是为创造独特的产品、服务或成果而进行的临时性工作。建造一座大楼可以是一个项目&#xff0c;进行一次旅游活动、日常办公活动、期末考试复习等也都可以看成一个项目。 项目管理不善会导致项目超时、超支、返工、…...

ETL工具 - Kettle 转换算子介绍

一、Kettle 转换算子 上篇文章对 Kettle 中的输入输出算子进行了介绍&#xff0c;本篇文章继续对转换算子进行讲解。 下面是上篇文章的地址&#xff1a; ETL工具 - Kettle 输入输出算子介绍 转换是ETL里面的T&#xff08;Transform&#xff09;&#xff0c;主要做数据转换&am…...

界面设计的读书笔记

所见即所得&#xff0c;属于绝大多数的人。 所想即所想&#xff0c;属于极少数的人。 当复杂度&#xff0c;超出了大脑的负荷&#xff0c;人会觉得很累&#xff0c;直到放弃追求。 地图的显示&#xff0c;必须有足够多的描述性的数据。 点信息 &#xff1a;标签&#xff0c;位…...

深度解析SOLIDWORKS在Linux平台的5大技术突破与完整部署指南

深度解析SOLIDWORKS在Linux平台的5大技术突破与完整部署指南 【免费下载链接】SOLIDWORKS-for-Linux This is a project, where I give you a way to use SOLIDWORKS on Linux! 项目地址: https://gitcode.com/gh_mirrors/so/SOLIDWORKS-for-Linux 在工程设计领域&…...

ChatGPT系统提示词仓库:从原理到实战的AI协作指南

1. 项目概述&#xff1a;一个被低估的ChatGPT系统提示词仓库如果你经常使用ChatGPT、Claude这类大语言模型&#xff0c;并且已经过了“随便问问”的新手阶段&#xff0c;开始尝试用它来辅助编程、撰写深度报告或者进行专业领域的对话&#xff0c;那么你大概率会遇到一个瓶颈&am…...

Qobuz-DL终极指南:解锁无损音乐下载的完整高效方案

Qobuz-DL终极指南&#xff1a;解锁无损音乐下载的完整高效方案 【免费下载链接】qobuz-dl A complete Lossless and Hi-Res music downloader for Qobuz 项目地址: https://gitcode.com/gh_mirrors/qo/qobuz-dl 在数字音乐追求极致音质的今天&#xff0c;无损音频获取工…...

如何快速配置黑苹果:OpenCore Configurator的完整入门指南

如何快速配置黑苹果&#xff1a;OpenCore Configurator的完整入门指南 【免费下载链接】OpenCore-Configurator A configurator for the OpenCore Bootloader 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Configurator OpenCore Configurator是一款专为黑苹果…...

独立开发者如何借助Taotoken快速试验不同模型效果

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何借助Taotoken快速试验不同模型效果 对于独立开发者或产品经理而言&#xff0c;在验证一个产品创意或构建原型时&…...

告别Visual Studio!用JetBrains Rider for Unreal Engine 4.25+ 写C++代码有多爽?

告别Visual Studio&#xff01;用JetBrains Rider for Unreal Engine 4.25 写C代码有多爽&#xff1f; 当你在Unreal Engine项目中处理复杂的C代码时&#xff0c;是否经历过这样的场景&#xff1a;Visual Studio的IntelliSense卡顿到让你怀疑人生&#xff0c;每次打开项目都要等…...

基于51单片机与SIM800A的GPS定位短信上报系统设计详解

1. 系统功能与硬件选型指南 这个项目本质上是个会自己报位置的电子小助手。想象一下&#xff0c;你养了只喜欢乱跑的宠物&#xff0c;或者经常找不到自己的自行车&#xff0c;这个小装置就能派上大用场。它每隔40秒就会自动给主人手机发条短信&#xff0c;告诉你当前所在的精确…...

别再死记硬背公式了!手把手教你用AP法搞定LLC变压器磁芯选型(附Excel计算表)

告别公式恐惧&#xff01;AP法实战指南&#xff1a;LLC变压器磁芯选型极简流程&#xff08;附智能计算工具&#xff09; 在电源设计领域&#xff0c;LLC谐振变换器因其高效率、软开关特性备受青睐&#xff0c;但变压器磁芯选型往往成为工程师的"拦路虎"。传统方法需要…...

从硬接线到软报文:GOOSE通信如何重塑变电站的“神经网络”?

从硬接线到软报文&#xff1a;GOOSE通信如何重塑变电站的“神经网络”&#xff1f; 在电力系统自动化领域&#xff0c;变电站的通信架构正经历着一场静默却深刻的革命。十年前&#xff0c;走进一座110kV变电站的控制室&#xff0c;映入眼帘的是密密麻麻的电缆沟和纵横交错的二次…...

MindSpore分布式并行原理与实战

随着深度学习模型参数量与数据集规模呈指数级增长&#xff0c;单卡训练已无法满足效率与内存需求&#xff0c;分布式并行训练成为突破性能瓶颈的核心方案。MindSpore作为华为自研的全场景AI框架&#xff0c;内置完善的分布式并行能力&#xff0c;支持数据并行、半自动并行、自动…...