瞄准
创建可安装的.deb
文件(或包)。点击后会在Linux机器上安装软件,并在GNOME面板上显示一个图标。以便从那里启动此应用程序。
我所指的
我提到了两个借记指南。
第一个视频无法理解,部分是因为口音,部分是因为它已经过时了
第二个完全是文本。我到了第四步,建立了这个包。但当我这样做时,我得到的输出与指南中给出的不匹配。
我需要什么
我有一个简单的python程序。它需要你的年龄,然后打印出来,如果年龄低于,等于或高于18岁。这个程序只有一个文件,没有其他依赖项。我想把它构建成一个.deb
。
规格
-Python2.7
-Linux薄荷
我按照你的指示遵循了确切的目录结构。把所有的myscript
替换成cowsandbulls
。建造完成了,我拿到了Debian。当我安装它,然后从终端运行命令cowsandbulls
时,出现以下错误:
Traceback (most recent call last):
File "/usr/bin/cowsandbulls", line 9, in <module>
load_entry_point('cowsandbulls==1.0', 'gui_scripts', 'cowsandbulls')()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 337, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2311, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2017, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
ImportError: No module named cowsandbulls
我刚刚测试了
stdeb
(参见https://pypi.python.org/pypi/stdeb),一个Python包,用于将任何其他Python包转换为Debian包。首先我安装了stdeb:
然后我制作了一个名为
myscript.py
的简单脚本,其中包含以下内容:重要的是,您的目录结构应该是:
在setup.py文件中,您可以执行以下操作:
console_scripts
指令很重要,它将创建一个名为my_script
的可执行脚本,在安装生成的DEB之后,该脚本将在系统范围内可用。如果脚本使用类似于tkinter
或wxpython
的内容并具有图形用户界面,则应使用gui_scripts
,而不是console_scripts
。data_files
指令将在/usr/share/applications
中安装适当的桌面文件,以便您也可以从桌面环境启动myscript
。vxlabs-myscript.desktop
如下所示:要构建DEB,请在顶层执行以下操作
myscript
:它将在deb_dist目录中创建一个.deb。
在安装了我这样创建的DEB之后,我可以从命令行运行
myscript
,也可以从桌面环境调用它。这是一个GitHub存储库,上面有示例代码:https://github.com/cpbotha/stdeb-minimal-example
构建deb包的正确方法是使用
dpkg-buildpackage
,但有时它有点复杂。相反,您可以使用dpkg -b <folder>
,它将创建您的Debian包。以下是使用
dpkg -b <folder>
创建Debian包的基础,该包可以使用任何二进制文件,也可以使用不需要手动编译就能自动运行的任何脚本(Python、Bash、Pearl和Ruby):放在
/usr/bin/
的脚本直接从终端调用。请注意,我没有向脚本添加扩展。另外,您可以注意到,一旦安装了deb包,它的结构就是程序的结构。所以如果你遵循这个逻辑如果你的程序只有一个文件,你可以直接把它放在
ProgramName-Version/usr/bin/your_script
下,但是如果你有多个文件,你应该把它们放在ProgramName-Version/usr/share/ProgramName/all your files
下,并且只把一个文件放在/usr/bin/
下,它将从/usr/share/ProgramName/
调用你的脚本。将所有文件夹权限更改为根目录:
更改脚本的权限:
最后,您可以运行:
dpkg -b /path/to/the/ProgramName-Version
,您的deb包将被创建!(您还可以添加post/pre-inst脚本和您想要的所有内容;它的工作方式类似于一个普通的Debian包。)下面是
control
文件的示例。只需将其复制粘贴到名为“control”的空文件中,并将其放入DEBIAN
文件夹。如果您想使用
dpkg -b <folder>
构建,可以使用this program来使用一个命令完成所有操作。如果你经常构建包,那么做我提到的所有事情都是件痛苦的事!*指南摘自Basics of Debian Packages。
相关问题 更多 >
编程相关推荐