2009-06-03 56 views
4

我開始Django開發,我可以從.deb文件我的Ubuntu的機器上使用從.deb和.tar.gz安裝Django的好處?

$ apt-get install python-django 

安裝它,或者我可以從djangoproject.com下載.tar.gz,並且着手。

每種方法的優點和缺點是什麼?

+0

既然我年紀大了而且更聰明,我總是通過「pip install django」來安裝Django,你也應該這樣做。 – slacy 2012-05-22 03:49:15

回答

8

使用apt-get可以讓您的系統跟蹤安裝情況(例如,如果您想卸載,升級或類似情況,請延遲)。從源代碼安裝(.tar.gz或其他)讓你負責什麼和在哪裏 - 你可以在不同的位置安裝多個版本等,但是沒有簡單的「卸載」之類的東西。就我個人而言,我更願意通過我的操作系統支持的方法(apt-get等)安裝我認爲是次要或輔助的軟件包,直接從svn/hg/& c中爲我正在貢獻的或以其他方式保留最接近的控件,和.tar.gz(或更好的時候.tar.bz2 ;-)「快照」和「源版本」,這是/在中間...

+0

如何將源映射到Env,符號鏈接? – 2009-06-03 06:42:09

+0

ln -s使符號鏈接 - 如果我需要設置環境變量,我在.profile,.bashrc,/ etc/profile或/ etc/bashrc中執行。 – 2009-06-03 14:38:09

4

使用apt-get,您將通過軟件包管理器獲得更好的卸載支持,並且還可以爲您安裝依賴關係。如果使用apt-get進行安裝,則可能會自動更新,這對安全修補程序非常有用。

有了tar,你可能會得到一個更新的版本,你可能有機會定製編譯標誌。構建可以針對您的特定處理器進行更加優化,但是由於在這種情況下python無關緊要。

0

我一直安裝使用dev版本。​​

這使得更新非常簡單,併爲您提供了/ dev/docs中的所有特性。如果可能的話,我建議你嘗試一下這條路線(如果有的話,它可以讓你瞭解網站包的工作原理)。

注意:ubuntu 9.04最近從site-packages(8.04)遷移到dist-packages使得這有點令人困惑,不得不重新創建鏈接。

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代碼,需要對版本進行完全控制,你只能通過源代碼獲得。

+0

+1我相信,大多數Django開發者都是「追蹤主幹」。我的電腦上唯一通過軟件包管理器安裝的Python軟件是python本身。所有其他的東西通過源代碼或easy_install。我總是使用virtualenv。 – codeape 2009-06-03 07:31:21

0

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

1

從您的Ubuntu存儲庫獲取Django會爲您提供舊的「穩定」版本。這對你來說可能沒問題,但我相信大多數開發人員更喜歡使用最新版本的代碼來獲得更多功能。

恕我直言,最簡潔的解決方案是不要直接安裝.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 

這不是真的,甚至對guarranteed工作(我真的不知道,甚至關於正確軟件包版本命名),但我自己嘗試過,它爲我工作。