代码之家  ›  专栏  ›  技术社区  ›  slacy

从.deb和.tar.gz安装django的好处?

  •  4
  • slacy  · 技术社区  · 15 年前

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

    $ apt-get install python-django
    

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

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

    6 回复  |  直到 15 年前
        1
  •  8
  •   Alex Martelli    15 年前

    使用 apt-get 让您的系统跟踪安装(例如,如果您想推迟安装、升级等)。从源安装( .tar.gz 或者其他)让您负责什么和在哪里——您可以在不同的位置安装多个版本,等等,但是不容易“卸载”等等。我个人更喜欢使用操作系统支持的方法安装( 易得 对于我认为是次要的或辅助的包,直接从svn/hg/&c获取,对于我正在贡献或希望保持最近控制的包,以及 T.Gz (或更好,如果有的话) .tar.bz2 ;-)“快照”和“源版本”,它们位于中间…

        2
  •  6
  •   lprsd    15 年前

    安装的最佳方法是签出您想要的变更集(分支/标记)中的代码,并定义到代码的符号链接。

    签出所需版本:

    # 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/
    

    软件包管理者的能力和apt-get很好地自动更新那些您不必每天都费心开发的软件,比如媒体播放器、浏览器。对于日常使用的U代码来说,需要对版本进行完全控制,这只能通过源代码来实现。

        3
  •  4
  •   Bryan Legend    15 年前

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

    使用tar,您可能会得到一个更新的版本,并且您可能会有机会定制编译标志。一个构建可以针对您的特定处理器进行更优化,但由于它是Python,所以在本例中并不重要。

        4
  •  1
  •   drdaeman    15 年前

    从Ubuntu存储库中获取django会给您提供较旧的“稳定”版本。这也许对您没问题,但我相信大多数开发人员更喜欢使用主干中可用的最新代码来获得更多的特性。

    imho最干净的解决方案是不安装.tar.gz/svn版本 sudo python setup.py install (或使用) easy-install )但是要做一个.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
    

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

        5
  •  0
  •   lostincode    15 年前

    我一直使用dev版本安装。 (Instructions)

    这使得更新变得非常容易,并为您提供了/dev/docs中的所有奇特功能。如果可能的话,我建议你尝试走这条路线(如果有什么可以让你了解站点包是如何工作的)。

    注意:Ubuntu9.04最近将包与站点包(8.04)分开,这让人有点困惑,必须重新创建链接。

        6
  •  0
  •   user50635    15 年前

    我知道在Debian和其他发行版中,包管理器中的django版本是0.9分支,而不是1.x分支。你肯定想避免的事情。