源码安装工具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 -f或dpkg -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,当然更可能的是,你早就把源码包给删除了,对于强迫症来说,这显…...
离散数学集合论
集合论 主要内容 集合基本概念 属于、包含幂集、空集文氏图等 集合的基本运算 并、交、补、差等 集合恒等式 集合运算的算律,恒等式的证明方法 集合的基本概念 集合的定义 集合没有明确的数学定义 理解:由离散个体构成的整体称为集合,…...
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函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程 #include<unistd.h> int main() {pid_t i fork;return 0; }当前进程调用fork,…...
PS学习笔记(零基础PS学习教程)
很多新手学习PS不知从何下手,做设计的第一阶段肯定是打牢基础,把工具用熟练;本期特别为大家整理了PS入门的学习笔记,把每个工具的用法整理了下来,在使用过程中有哪里不清楚的可以翻看来看看~ 一、ps的工作界面的介绍 …...
如何构建数据血缘系统
1、明确需求,确定边界 在进行血缘系统构建之前,需要进行需求调研,明确血缘系统的主要功能,从而确定血缘系统的最细节点粒度,实体边界范围。 例如节点粒度是否需要精确到字段级,或是表级。一般来说&#x…...
IPsec中IKE与ISAKMP过程分析(主模式-消息3)
IPsec中IKE与ISAKMP过程分析(主模式-消息1)_搞搞搞高傲的博客-CSDN博客 IPsec中IKE与ISAKMP过程分析(主模式-消息2)_搞搞搞高傲的博客-CSDN博客 阶段目标过程消息IKE第一阶段建立一个ISAKMP SA实现通信双发的身份鉴别和密钥交换&…...
深度学习技巧应用10-PyTorch框架中早停法类的构建与运用
大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用10-PyTorch框架中早停法类的构建与运用,文章将介绍深度学习训练过程中的一个重要技巧—早停法,以及如何在PyTorch框架中实现早停法。文章将从早停法原理和实践出发,结合实际案例剖析早停法的优缺点及在PyTorch中的应…...
Linux文件系统权限
目录标题 文件权限文件和目录的一般权限文件的权限针对三类对象进行定义文件和目录中,r、w、x的作用 设置文件和目录的一般权限修改文件或目录的权限—chmod(change mode)命令权限值的表示方法—使用3位八进制数表示权限值的表示方法—使用字符串表示修改文件或目录…...
ctfshow之_萌新web1至web7
一、访问在线靶场ctfshow ctf.showhttps://ctf.show/challenges如下图所示,进入_萌新赛的web1问题: 如上图所示,页面代码提示id1000时,可以查询到flag,进行如下尝试: 如下图所示,传入参数id1时…...
HPDA的资料
HPDA,英文全称为High Performance Data Analysis,直译为高性能数据分析。 适用场景 机器学习大数据分析 技术挑战 大量的元数据操作数据的同步随机读写高IOPOS的小IO请求高带宽的文件请求 技术关键字 存算分离移动计算大I/O直通,小I/O聚…...
项目管理软件可以用来做什么?这篇文章说清楚了
项目管理软件是用来干嘛的,就得看对项目的理解。项目是为创造独特的产品、服务或成果而进行的临时性工作。建造一座大楼可以是一个项目,进行一次旅游活动、日常办公活动、期末考试复习等也都可以看成一个项目。 项目管理不善会导致项目超时、超支、返工、…...
ETL工具 - Kettle 转换算子介绍
一、Kettle 转换算子 上篇文章对 Kettle 中的输入输出算子进行了介绍,本篇文章继续对转换算子进行讲解。 下面是上篇文章的地址: ETL工具 - Kettle 输入输出算子介绍 转换是ETL里面的T(Transform),主要做数据转换&am…...
界面设计的读书笔记
所见即所得,属于绝大多数的人。 所想即所想,属于极少数的人。 当复杂度,超出了大脑的负荷,人会觉得很累,直到放弃追求。 地图的显示,必须有足够多的描述性的数据。 点信息 :标签,位…...
Linux下用qemu-nbd挂载qcow2镜像的完整指南(含LVM/非LVM/ntfs场景)
Linux下用qemu-nbd挂载qcow2镜像的完整指南(含LVM/非LVM/ntfs场景) 当虚拟机突然崩溃或需要从镜像中提取关键数据时,直接挂载qcow2镜像往往是最直接的解决方案。不同于常规磁盘挂载,qcow2镜像可能包含复杂的存储结构——从简单的e…...
如何突破极域电子教室限制?3个高效学习工具推荐
如何突破极域电子教室限制?3个高效学习工具推荐 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 在数字化教学环境中,极域电子教室作为常见的教学管理软件&…...
AD7606模数转换器的FPGA驱动设计与实现(串行/并行双模式解析)
1. AD7606模数转换器核心特性解析 AD7606这颗16位模数转换芯片在工业现场堪称"数据捕手",我经手过的电力监控、振动分析项目中都能看到它的身影。与普通ADC不同,它最吸引工程师的特性是双模数据输出——就像高速公路的ETC和人工通道可以并行运…...
逆向工程实战:从V8引擎角度破解JavaScript无限debugger(保姆级教程)
V8引擎深度解析:JavaScript调试机制与安全实践 在JavaScript开发领域,调试器(debugger)是开发者日常工作中不可或缺的工具。作为Chrome浏览器和Node.js的核心引擎,V8对debugger关键字的处理机制直接影响着开发者的调试体验。本文将深入探讨V8…...
3个步骤,让OpenWRT路由器秒变智能应用中心:iStore完全指南
3个步骤,让OpenWRT路由器秒变智能应用中心:iStore完全指南 【免费下载链接】istore 一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The …...
Qwen3-0.6B-FP8快速上手:Anaconda环境下的Python开发配置
Qwen3-0.6B-FP8快速上手:Anaconda环境下的Python开发配置 想试试最新的轻量级大模型Qwen3-0.6B-FP8,但被Python环境搞得头大?别担心,今天咱们就来手把手搞定它。很多朋友在第一步——环境配置上就卡住了,要么是包版本…...
ChatTTS一键启动:从零搭建语音合成服务的实战指南
语音合成服务在现代应用中扮演着越来越重要的角色。它被广泛应用于智能客服、有声读物生成和视频内容配音等场景。通过将文本转化为自然流畅的语音,极大地提升了人机交互的体验和应用的可访问性。 然而,对于希望快速部署ChatTTS这类先进语音合成模型的开…...
解决CLI工具接入DeepSeek API流式传输失败的实战指南
最近在对接DeepSeek的API时,遇到了一个挺典型的问题:用CLI工具调用API进行流式传输时,经常中途失败,返回的错误信息又比较模糊,调试起来很头疼。特别是在处理长文本生成或者需要连续对话的场景下,这个问题直…...
企业IT必看:教员工用小米手机配置Exchange邮箱的完整指南(含服务器参数详解)
企业IT标准化指南:小米手机Exchange邮箱配置与服务器参数解析 在移动办公成为标配的今天,企业邮箱的稳定接入直接关系到团队协作效率。根据2023年企业通信工具调研报告,超过67%的中大型企业仍在使用Exchange作为核心邮件系统,而员…...
淘宝任务自动化:让每天25分钟的重复操作变成5分钟的智能管理
淘宝任务自动化:让每天25分钟的重复操作变成5分钟的智能管理 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi …...
