从 rpm install 中运行 Python 脚本时,我应该注意哪些问题?
这是问题的要点。我们创建了一个自定义 RPM 安装程序来部署我们的 Django 应用程序。作为安装过程的一部分,我想运行一个 Django 管理命令,该命令收集所有静态文件并将它们复制到预定义的位置。这是从命令行手动运行时的样子:
$ python2.6 manage.py collectstatic --noinput
/usr/lib/python2.6/site-packages/reversion/__init__.py:31: UserWarning: django-reversion 1.5 is intended for use with django 1.3.0. You are running django 1.3.1, so some features, such as admin integration, may not work. Please see https://github.com/etianen/django-reversion/wiki/Compatible-Django-Versions
"django_version": format_version(django.VERSION[:3]),
Copying '/usr/lib/python2.6/site-packages/django/contrib/admin/media/img/gis/move_vertex_on.png'
Copying '/usr/lib/python2.6/site-packages/django/contrib/admin/media/img/gis/move_vertex_off.png'
Copying '/usr/lib/python2.6/site-packages/django/contrib/admin/media/img/admin/icon_clock.gif'
Copying '/usr/lib/python2.6/site-packages/django/contrib/admin/media/img/admin/arrow-down.gif'
Copying '/usr/lib/python2.6/site-packages/django/contrib/admin/media/img/admin/inline-restore.png'
...
因此,为了将其作为 RPM 安装的一部分运行,我在规范文件中添加了以下内容:
%post
# collect static files
pushd .
cd %{installpath}/src/app/
%{__python} manage.py collectstatic --noinput --settings=settings_prod
popd
问题是当我运行它时,我可以看到任务被启动:
sudo rpm -U app-0.2.8.18889M-1.x86_64.rpm -vv
...
+ pushd .
/ /
+ cd /opt/qpsi/app/src/app/
+ /usr/bin/python2.6 manage.py collectstatic --noinput --settings=settings_prod
/usr/lib/python2.6/site-packages/reversion/__init__.py:31: UserWarning: django-reversion 1.5 is intended for use with django 1.3.0. You are running django 1.3.1, so some features, such as admin integration, may not work. Please see https://github.com/etianen/django-reversion/wiki/Compatible-Django-Versions
"django_version": format_version(django.VERSION[:3]),
There is no South database module 'south.db.oracle' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.
+ popd
但是在输出中没有预期的文件列表被复制,并且静态目录实际上没有被填充。
所以问题是:
- 从 RPM 运行 python 脚本有什么特别需要注意的吗
- 我正在使用 rpm 命令的 -vv 选项从安装过程中获取详细输出,但是一旦 python 脚本启动,有没有办法进一步调试 rpm 内部发生的事情。
感谢:D。