Debian Lenny的简单deb包?

Debian Lenny的简单deb包?,debian,deb,sshd,lenny,Debian,Deb,Sshd,Lenny,在运行Debian Lenny的NAS上,我愚蠢地在sshd_config中将permitrotlogin设置为“无密码”,但没有首先正确设置密钥,现在被锁定。这是一个WD共享空间,读起来,恢复根SSH访问的最佳方法是创建一个覆盖原始sshd_配置文件的deb包。我发现描述deb包创建的站点非常繁重。我需要包做的就是覆盖一个文件。有一种简单的方法可以做到这一点吗?有一些工具可以使简单的打包变得更容易,但是打包是一项基本上复杂的任务,因为包可以做很多事情(写出二进制文件、配置文件、运行安装后脚本等

在运行Debian Lenny的NAS上,我愚蠢地在sshd_config中将permitrotlogin设置为“无密码”,但没有首先正确设置密钥,现在被锁定。这是一个WD共享空间,读起来,恢复根SSH访问的最佳方法是创建一个覆盖原始sshd_配置文件的deb包。我发现描述deb包创建的站点非常繁重。我需要包做的就是覆盖一个文件。有一种简单的方法可以做到这一点吗?

有一些工具可以使简单的打包变得更容易,但是打包是一项基本上复杂的任务,因为包可以做很多事情(写出二进制文件、配置文件、运行安装后脚本等)

这就是说,如果您只需要打包一个文件以显示在特定位置,那么这样的工具之一就是(需要Ruby)。不要不尊重fpm,它可以做的远远不止是打包一个目录的东西

/tmp
中创建要打包的目录结构。就像
/tmp/mypackage
是目标文件系统的根一样,因此安装包后,您在
mypackage/etc
中放置的任何内容都将显示在
/etc
中:

mkdir -p /tmp/mypackage/etc
echo "My file contents" > /tmp/mypackage/etc/my_config_file
将您的
sshd\u config
文件粘贴到该
etc
目录中。然后我们将其打包:

fpm -t "deb" -n "mypackage" -s dir /tmp/mypackage
你应该得到类似于:

Created package {:path=>"mypackage_1.0_amd64.deb"}

确保使用
-a
选项设置正确的体系结构(我不知道WD Sharespace使用什么)。一旦您在NAS上安装了该软件包,配置文件就会显示在那里。

作为Lenny和许多其他发行版中存在的替代方法,“alien”命令。它将包从一个发行版转换为另一个发行版。这不会有多大用处,除非它非常宽容Slackware TGZ包。它将接受路径从根目录开始的任何TGZ文件(pkgname_version.tar.gz),并将该TGZ转换为普通deb文件进行安装


它有几个选项来定制软件包(设置版本标签等),但最终的结果是软件包可以轻松地安装/删除或更换系统上的任何软件包。

这看起来很完美。非常感谢。一旦我确认它有效,我会点击“回答你的问题”。效果很好。感谢您的明确指示,尤其是-a选项。