Преимущество установки Django от .deb против .tar.gz? - PullRequest
4 голосов
/ 03 июня 2009

Я начинаю разработку Django и могу установить ее из .deb, используя

$ apt-get install python-django

на моем компьютере с Ubuntu, или я могу загрузить .tar.gz с djangoproject.com и начать с этого.

Каковы преимущества и недостатки каждого подхода?

Ответы [ 6 ]

8 голосов
/ 03 июня 2009

Использование apt-get позволяет вашей системе отслеживать установку (например, если вы хотите удалить, обновить и т. П. С опозданием). Установка из исходного кода (.tar.gz или иным образом) дает вам ответственность за то, что, что и где - вы можете установить несколько версий в разных местах и ​​т. Д., Но нет простого «удаления» и тому подобного. Лично я предпочитаю устанавливать поддерживаемым методом моей ОС (apt-get и т. П.) Для пакетов, которые я считаю вторичными или вспомогательными, напрямую из svn / hg / & c для пакетов, в которые я добавляю или иным образом хочу сохранить ближайший контроль и .tar.gz (или лучше, когда доступны .tar.bz2 ;-) "снимки" и "исходные выпуски", которые находятся где-то посередине ...

6 голосов
/ 03 июня 2009

Лучший способ установки - это проверить код, который когда-либо будет изменен (ветвь / тег), который вы хотите, и определить символическую ссылку на него

Оформить заказ нужной версии:

# 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 хороши для автоматического обновления программного обеспечения, с которым вам не приходится сталкиваться каждый день, например, медиаплееры, браузеры. Для повседневной работы необходим полный контроль над версиями, вы можете получить его только по источнику.

4 голосов
/ 03 июня 2009

Используя apt-get, вы получите лучшую поддержку удаления через менеджер пакетов, а также он может установить зависимости для вас. Если вы устанавливаете с помощью apt-get, вы можете получать автоматические обновления, что очень хорошо для исправлений безопасности.

С помощью tar вы можете получить более новую версию и возможность настроить флаги компиляции. Сборка может быть более оптимизирована для вашего конкретного процессора, но, поскольку это Python, в данном случае это не имеет значения.

1 голос
/ 03 июня 2009

Получение Django из вашего репозитория Ubuntu дает вам старую "стабильную" версию. Это может быть хорошо с вами, но я полагаю, что большинство разработчиков предпочитают придерживаться последнего кода, доступного в стволе, чтобы получить больше возможностей.

ИМХО самое чистое решение - не устанавливать версию .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

Это даже не гарантировано для работы (и я не совсем уверен даже в правильном именовании версии пакета), но я попробовал это сам, и это сработало для меня.

0 голосов
/ 03 июня 2009

Я знаю, что в Debian и, возможно, в некоторых других дистрибутивах версия django в менеджере пакетов - это ветка 0.9, а не ветка 1.X. Определенно то, чего вы хотите избежать.

0 голосов
/ 03 июня 2009

Я всегда устанавливал, используя версию dev. (Инструкции)

Это делает обновление действительно простым и предоставляет вам все необычные функции в / dev / docs. Я бы посоветовал вам попробовать пойти по этому пути, если это возможно (если что-нибудь даст вам представление о том, как работают пакеты сайта).

Примечание: недавний переход ubuntu 9.04 на dist-пакеты из site-packages (8.04) немного запутал его, пришлось воссоздать ссылку.

...