如何在 Debian/Ubuntu/Kali 上重新打包 已安装的 软件
ubuntu迁移环境 软件包一键迁移
----------------------------------------------------------------------
关联参考:
如何在 Debian / Ubuntu 系统中,apt 修复损坏的程序包 https://blog.csdn.net/ken2232/article/details/145281272
----------------------------------------------------------------------
注意:
一键迁移:有时并不容易。
由于有些包缺少必要的文件,或破损,此时未必能够成功地 clone, 或打包。
解决:有时,必须先修复破损包。
sudo apt --fix-broken install
sudo apt update --fix-missing
1. apt-get install -f:该命令用于修复依赖关系问题。如果系统中某个软件包的安装被破坏或依赖关系混乱,使用该命令可以尝试解决问题。
----------------------------------------------------------------------
参考:
dpkg-repack / apt-clone:重新打包 已安装的 软件,一键迁移 (***) dpkg-repack / apt-clone:重新打包 已安装的 软件,一键迁移 (***)-CSDN博客
Linux 中的 dpkg 命令及示例 (**)Linux 中的 dpkg 命令及示例 (**)_dpkg命令 提取-CSDN博客
利用 appimagetool 工具对开发好的项目进行打包 (***带笔记*) 利用 appimagetool 工具对开发好的项目进行打包 (***带笔记*)-CSDN博客
========================================
ubuntu迁移环境 软件包一键迁移
安装
sudo apt-get install apt-clone
原来机器备份:
sudo apt-clone clone backupname --with-dpkg-repack
备份到backupname 下,当前目录会生成一个tar包
查看包信息
apt-clone info backupname
Hostname: codewar-virtual-machine
Arch: amd64
Distro: bionic
Meta: libunity-scopes-json-def-desktop, ubuntu-desktop
Installed: 1625 pkgs (60 automatic)
Date: Tue Mar 24 22:40:42 2020
说明有1625个pkgs
新机器安装:
sudo apt-clone restore backupname
backupname 就是上面生成的tar包
————————————————
版权声明:本文为CSDN博主「勤奋的Alivon」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43619065/article/details/105083672
如何在 Debian/Ubuntu/Kali 上重新打包 已安装的 软件
划重点:
1. 如何将 Debian系 Linux系统或服务器上已安装的软件重新打包,制作 deb 安装包;
2. 能否实现软件环境的克隆,以避免因缺失依赖而项导致的无法安装;
3. 保持软件原来的设置状态迁徙,减少后续重新设置时的工作量。
面对如上困境,博主推荐使用 dpkg-repack 和 apt-clone工具 ~~
一、 Dpkg-Repack
dpkg-repack 是一款能对已安装软件进行deb打包的软件。
安装方法:
sudo apt install dpkg-repack -y
安装成功后,以我 Kali Linux 操作系统中的 百度输入法为例:
打包百度输入法 Linux版:
dpkg-repack fcitx-baidupinyin
----------------------
如果由于任何权限问题而无法重建 deb 文件,请从fakeroot环境中运行命令:
fakeroot -u dpkg-repack <package-name>
我们可以在运行原始软件的主服务器上打印依赖项:
apt-cache depends Package_name |awk '{print $2}'
也可尝试创建脚本来自动安装依赖项:
package=package
dpkg-repack $(apt-cache depends --false-suggests $package |awk '{print $2}') $package
————————————————
二、Apt-Clone
apt-clone 是一款非常使用的程序,能够 帮助 dekg-repack 重新构建deb的同时保留被打包软件的设置项和依赖环境。
该软件同样可通过CLI进行安装:
apt-get install apt-clone -y
注:需要下载安装: Debian -- Details of package apt-clone in sid
apt 先查阅软件依赖项:
C:\root> apt-cache depends fcitx-baidupinyin | awk '{print $2}'
指定构建被迁徙软件的 apt-clone.tar.gz 环境包:
apt-clone clone fcitx-baidupinyin --with-dpkg-repack
最后将构建好的 apt-clone.tar.gz 移动到目标服务器中恢复构建即可:
apt-clone restore fcitx-baidupinyin.apt-clone.tar.gz
You can manually install the same packages from one server to another with the below commands :
dpkg -l | grep ^ii | awk '{print $2}' > installed
# another server
sudo apt-get install $(cat installed)
Usually, the settings are saved in the /etc/ directory. There are tools such as etckeeper which can be used with git to restore the settings :
http://etckeeper.branchable.com/
————————————————
版权声明:本文为CSDN博主「~晨曦静竹~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43515862/article/details/126457255
bash-在Debian上使用dpkg-repack备份可升级软件包
(Backup upgradable packages with dpkg-repack on debian)
我想列出可升级的软件包并自动将其重新打包为.debs。我的尝试:
fakeroot -u dpkg-repack `apt list --upgradable | cut -f1 -d"/" | awk '{if(NR>2)print}'`
因此它获取包名称,然后将名称重定向到dpkg-repack。它部分起作用,因为当amd64和i386软件包同时存在且名称相同时,dpkg-repack会引发错误-在这种情况下,它希望将体系结构添加到软件包名称中。
你是否知道如何管理它,并且在存在多个拱门的情况下,自动生成两个Deb?似乎dpkg-repack不够智能,无法自动生成多个体系结构,它仅抛出错误消息,提示已安装多个具有相同名称的软件包