问题标签 [checkinstall]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 创建 Python RPM
我一直在阅读有关为 Python 2.6.4 创建 RPM 的信息。在此页面中: http: //docs.python.org/distutils/builtdist.html它说您可以使用python setup.py bdist_rpm
. 我的问题是:
- 您是否必须在 Python 安装目录中键入此命令?
- 此命令是否将您已安装的所有模块打包到 RPM 中?
- 这是执行此操作的正确命令吗?
- 还有其他建议可以使这更容易吗?
好的,我使用 checkinstall 解决了这个问题。
我checkinstall
从http://www.asic-linux.com.mx/~izto/checkinstall/下载。
然后我安装了该软件包,但必须输入/usr/local/sbin/checkinstall
我的 PATH 才能使其工作。然后我输入了下一个命令来启动我的 RPM 目录。
然后我cd
进入 Python 模块并输入以下命令:
该命令将命令替换checkinstall
为您通过 setup.py 而不是普通的 make 安装 python 库的命令。
然后我经历了这个checkinstall
过程。完成的 RPM 被放入/usr/src/redhat/RPMS/i386/
.
注意:这是针对 LINUX 红帽的。
checkinstall - 使用 checkinstall 制作 .deb 包装时出现以下错误
我正在使用 checkinstall 在我的 ubuntu 机器中准备 debian 包。我做了以下程序来准备它
最后我得到了关注。
linux - 为什么 mkdir -p 在 checkinstall 调用的脚本中不能正常工作?
我正在尝试编译Quarter并使用checkinstall打包它。
如果我执行标准的 ./configure && make && sudo make install,一切都会好起来的。
但是当我使用 checkinstall 时,它在一个mkdir -p
应该可以正常工作的情况下失败了。它失败的方式就像-p
没有给出选项一样。这是我正在使用的 checkinstall 命令行:
这是失败:
这是脚本的相关部分:
我不明白为什么(如果exec
会这样——这不能保证脚本的其余部分(在 之后esac
)永远不会执行吗?if
测试通过,那么脚本假定mkdir -p
工作正常,所以一旦它真正mkdir -p
运行它就可以退出;否则脚本的其余部分实现正确的mkdir -p
行为。) 我也不明白为什么它(汤姆在评论中解释道。)"$*"
在 echo 和"$@"
下一个中使用行,但这似乎并不重要——它们都是同一件事,因为这个脚本只用一个参数调用。
如果我在两者之间添加两行,然后echo
它exec
会像这样工作 - 更好,但仍然令人困惑:mkdir -p -- "$@"
echo "Now doing the exec mkdir..."
现在,两次执行 mkdir 行使其工作的事实告诉我这不是权限问题(此外,这会生成与 mkdir 不同的诊断,并且它正在运行sudo
,并且它实际上/var/tmp/...
不是在真正的/usr/local/...
. 我认为发生的事情是第一个 mkdir 调用(我添加的那个)实际上只是创建Quarter
目录并退出,然后当第二个 mkdir 运行时,它能够创建devices
子目录,因为 Quarter 目录已经存在。但是为什么 mkdir 会那样工作???
我的解决方法是以某种方式修补该 mkinstalldirs 脚本,但我真的很好奇为什么这会破坏!
这是在 Win7 上的 VirtualBox 中运行的 Ubuntu 10.10 来宾,检查安装版本 1.6.2 通过 apt-get 安装。
编辑: 我做了一些测试,看看在这个环境中什么有效,什么失败......
奇怪的是,它-p
适用于相对路径名,但不适用于绝对路径名。或者,正确的区别可能是-p
在“chroot”树之外工作(如果它甚至真的使用 chroot)但不在其中。
我还验证了尽管失败,但它能够创建第一个目录级别。
还是个谜。
ruby - Checkinstall 无法制作 Ruby 1.9.2 包
Checkinstall 无法创建 Ruby 包并出现以下错误。
问题的原因是什么?我该如何解决?
谢谢。
Debian GNU/Linux 6.0.1;
红宝石 1.9.2;
检查安装 1.6.2。
makefile - checkinstall 创建无用的deb?
我有一个非常简单的命令行程序,它实际上由一个 python 脚本和一些辅助 shell 脚本组成。我想了解如何打包这个程序,虽然它是微不足道的。
根据我收集到的信息,我选择了配置/制作/安装路线。由于我没有任何要配置或制作的东西,我简单地创建了一个 Makefile,只有一个安装部分:
此时,我的程序使用 sudo make install 安装并运行良好。
然后,我尝试使用checkinstall创建一个 deb 文件,如下所示:
它似乎通过了安装部分,因为它报告它成功,但随后失败:
该程序已安装,但据我所知,这个新制作的 .deb 文件什么也没做。dpkg -L my-program 只产生
并手动删除它并从 deb 文件安装似乎没有做任何事情 - 它实际上并没有将任何文件放在任何地方。
那么,(1)我的方法有什么问题吗?(2) 如何解决 checkinstall 问题?
非常感谢您的回答,即使我擅长代码,但我对打包/分发一无所知。
python - 如果安装了任意程序,如何从 python 中检查
我想我正在寻找更接近这个问题。
我正在运行一个需要安装程序和服务的 python 脚本(在 Windows 机器上)。由于我无法控制我的脚本将在哪些机器上运行,我需要从我的脚本中检查程序和服务是否安装在机器上。
我该怎么做呢?
编辑:我不想检查是否安装了 python 模块。我知道我可以很容易地通过尝试导入它来做到这一点。我正在尝试检查计算机上是否安装了程序(例如 Mozilla Firefox)
linux - 我怎样才能沙箱文件系统活动,特别是写入?
Gentoo 在 portage 中有一个特性,可以防止和记录构建和打包目录之外的写入。
Checkinstall能够监控写入,并在完成后打包所有生成的文件。
Autotools 有一个DESTDIR
宏,可以让您通常将大部分文件系统活动定向到备用位置。
- 我自己如何使用 Gentoo 沙盒方法的安全性来做到这一点?
- 我可以使用 SELinux、rlimit 或其他一些资源限制 API 吗?
- C、Python 有哪些 API 可用?
更新0
- 使用的机制不需要 root 权限或任何涉及/持久的系统修改。这排除了创建用户和使用
chroot()
. - 请链接到您提到的 API 的文档,由于某种原因,它们非常难以找到。
更新1
- 这是为了防止意外。我不担心恶意代码,只担心写得不好的品种。
package - 创建源 Debian 软件包的最简单方法是什么?
假设你有 hello.c
和 Makefile
获取二进制包的最快和最简单的方法似乎是使用 checkinstall:
如何做类似的事情,但对于源包(将其放入某个源存储库或在其上使用“dpkg-buildpackage”)?
官方文本相当长:orig.tar.gz、changelog、控制文件……有没有类似 checkinstall 的东西,但对于源包?如果它也自动(至少部分地)计算出依赖关系,那么额外的好处应该是。
makefile - 试图覆盖 `/var/backups/infodir.bak',它也在包 x 中
在编译软件时,我总是用. ./configure
&& make
&&checkinstall -D make install
来构建软件。
现在我在使用 checkinstall 时遇到了这个问题,我得到了错误
“试图覆盖 `/var/backups/infodir.bak',它也在包 libtasn1-3.2 中”。
我还使用&& &&创建了libtasn1-3.2。./configure
make
checkinstall -D make install
我试图删除文件/var/backups/infodir.bak,但我仍然得到错误。有谁知道我该如何解决这个问题?
bash - 如何使用 checkinstall 管理多个包依赖项?
我有一个我已经使用checkinstall
了一段时间的包,我想自动化它(通过命令行传递值,而不是输入选择,粘贴值等等......)
我不确定这是否是 checkinstall 错误,但如何通过命令行--requires
选项包含多个包。--requires="libvte9 (>= 0.28.2)"
如果我包含一个包的最低版本(例如),或者一次包含多个包(例如--requires "libvte9, libc6"
) ,这似乎很糟糕
有没有人在多个包的命令行参数方面取得了更好的成功?我做错了什么,或者这是一个错误。
注意:如果我运行脚本,并选择 requires 选项 (10),然后将我的整行粘贴到多个包和最低版本(例如libvte9 (>= 0.28.2), libc6 (>= 2.13)
,它工作正常,它似乎只是在命令行上出现问题。这也是使用该-D
选项构建一个 debian 包。