4

我正在开始 Django 开发,我可以使用 .deb 从 .deb 安装它

$ apt-get install python-django

在我的 Ubuntu 机器上,或者我可以从djangoproject.com下载 .tar.gz ,然后开始。

每种方法的优点和缺点是什么?

4

6 回答 6

8

使用apt-get可以让您的系统跟踪安装(例如,如果您想要卸载、升级等,则延迟)。从源代码(.tar.gz或其他方式)安装让您负责什么是什么和在哪里——您可以在不同的位置安装多个版本等,但没有简单的“卸载”等。就我个人而言,我更喜欢通过我的操作系统支持的方法(apt-get等)安装我认为是次要或辅助的软件包,直接从 svn/hg/&c 安装我正在贡献或希望保持最密切控制的软件包,以及.tar.gz(或在可用时更好.tar.bz2;-) 中间的“快照”和“源版本”...

于 2009-06-03T05:59:05.117 回答
6

最好的安装方法是检查代码,无论你想要哪个变更集(分支/标签),并定义一个符号链接到它

签出您想要的版本:

# For trunk
svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk   
# For a tag, 1.02 release
svn co http://code.djangoproject.com/svn/django/tag/1.02 django-1.02
# To update the trunk
cd django-trunk
svn up

然后定义符号链接

ln -fs /usr/lib/python2.5/site-packages/django/* ~/django-1.02/

如果您想在最新版本中测试您的代码,只需重新定义符号链接:

ln -fs /usr/lib/python2.5/site-packages/django/* ~/django-trunk/

软件包管理器 aptitude 和 apt-get 非常适合自动更新那些您每天都不会真正为开发而烦恼的软件,例如媒体播放器、浏览器。对于日常使用的 U 代码,需要完全控制版本,您只能通过源代码获得。

于 2009-06-03T06:51:48.050 回答
4

使用 apt-get 您将通过包管理器获得更好的卸载支持,它还可以为您安装依赖项。如果您使用 apt-get 安装,您可能会获得自动更新,这对于安全补丁非常有用。

使用 tar 您可能会获得更新的版本,并且您可能有机会定制编译标志。构建可以针对您的特定处理器进行更优化,但因为在这种情况下它是 python 并不重要。

于 2009-06-03T05:58:57.910 回答
1

从 Ubuntu 存储库获取 Django 会为您提供较旧的“稳定”版本。这对你来说可能没问题,但我相信大多数开发人员更喜欢坚持使用主干中可用的最新代码来获得更多功能。

恕我直言,最干净的解决方案不是直接sudo python setup.py install(或使用easy-install)安装 .tar.gz/SVN 版本,而是制作一个 .deb 包。这样您应该获得最大的好处:1) 您想要的所有前沿功能 2) 适当的 Debian/Ubuntu 软件包,您可以轻松地卸载、升级和部署到任意数量的 Debian 机器。

这是一种快速而肮脏的方法:

#
# This is dirty (you have been warned) way to quickly
# make new Django .deb package from SVN trunk for personal use.
#
apt-get source python-django
apt-get build-dep python-django
svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
DJANGO_SVN_REVISION=`LC_ALL=C svn info django-trunk \
                     | grep ^Revision: | awk '{ print $2 }'`
cp -R python-django-*/debian django-trunk/
cd django-trunk
dch --newversion=1.1-1ubuntu1~svn${DJANGO_SVN_REVISION} \
    "Non-maintainer quick-and-dirty update to SVN r${DJANGO_SVN_REVISION}"
dpkg-buildpackage
# Have a good sip of tea, coffee or whatever you prefer.
# Because of tests, this is going to take quite a while.
# You may consider disabling (this is bad!) tests by commenting out
# line mentioning "runtests.py" in debian/rules.
cd ..
dpkg -i python-django_*.deb

这甚至不能真正保证工作(而且我什至不确定正确的包版本命名),但我自己尝试过,它对我有用。

于 2009-06-03T13:43:54.443 回答
0

我一直使用开发版安装。(指示)

这使得更新变得非常容易,并为您提供 /dev/ 文档中的所有精美功能。如果可能的话,我建议你尝试这条路线(如果有的话,它可以让你了解站点包的工作方式)。

注意:ubuntu 9.04 最近从 site-packages (8.04) 迁移到 dist-packages 使这有点混乱,不得不重新创建链接。

于 2009-06-03T06:18:44.350 回答
0

我知道在 debian 和其他一些发行版中,包管理器中的 django 版本是 0.9 分支,而不是 1.X 分支。绝对是你想要避免的事情。

于 2009-06-03T08:35:01.790 回答