Instale o python 2.6 no CentOS

85

Eu tenho um shell que executa o CentOS.

Para um projeto que estou fazendo, preciso do python 2.5+, mas o centOS depende muito do 2.4.

Pelo que li, várias coisas podem falhar se você atualizar para o 2.5.

Desejo instalar o 2.5 separadamente do 2.4, mas não tenho certeza de como fazer isso. Até agora, baixei o tarball de origem, descompactei-o e fiz um ./configure --prefix=/optque é onde quero que ele vá. Posso agora make, make install? Ou tem mais?

tehryan
fonte
8
Eu, pessoalmente, costumava usar muito o CentOS e mudei para o Ubuntu por causa de como as distribuições RedHat / CentOS são complicadas (Python 2.4 ...). Se você pode dar o salto politicamente, faça-o. Você será muito mais feliz e não terá mais que se preocupar com esse tipo de coisa.
Adam Nelson,
1
Compilar a partir do código-fonte e instalá-los /usr/local(o padrão) não deve causar nenhum problema. Ou, melhor ainda, elimine os centos e instale o debian: P
o0 '.
19
Hã? O ponto do CentOS / RHEL é o suporte de longo prazo. Se houver uma opção de mudar para a distribuição mais recente, mudar para o Fedora faz muito mais sentido do que mudar para o Ubuntu para alguém com experiência em CentOS.
Muhammad Alkarouri de
1
Só para ficar claro, sem nenhuma barra lateral sarcástica: SIM. Você pode instalar uma versão mais recente do Python, do código-fonte, em / opt conforme listado. Ou, por padrão, vai para / usr / local / {bin, lib, share, man}, que também funciona muito bem e não interfere com o python 2.4, que AINDA é a versão do CentOS 5. O CentOS 6 vem com o python 2.6.6.
IcarusNM

Respostas:

79

Você também pode usar o repositório EPEL e , em seguida, sudo yum install python26instalar o python 2.6

Boerre
fonte
8
Como usar EPEL: fedoraproject.org/wiki/EPEL/FAQ#howtouse - Mas lembre-se de substituir o i386 pelo seu arco se não for x86 de 32 bits
rakslice
Funcionou para mim! Eu precisava disso para outro projeto também, então estou duplamente feliz!
rholmes
2
parece que o Python 2.6 não está mais no epel.
mujimu
1
@mujimu, acho que eles podem tornar o 2.6 o padrão em relação ao 2.4. Portanto, comandos como yum install python26podem yum install pythondepender apenas do tipo / versão do sistema operacional.
James Oravec
31

Experimente epel

wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
sudo rpm -ivh epel-release-5-4.noarch.rpm
sudo yum install python26

O executável python estará disponível em /usr/bin/python26

mkdir -p ~/bin
ln -s /usr/bin/python26 ~/bin/python
export PATH=~/bin:$PATH # Append this to your ~/.bash_profile for persistence

Agora, o pythoncomando irá executarpython 2.6

Joyce Babu
fonte
Obrigado pela última parte - acabei de instalar o python26 e queria saber como tornar o 'padrão' (2.4) referindo-se ao 2.6. Criar um link simbólico e ajustar o caminho fez isso.
Jay Sidri
Obviamente, isso funcionará ... para um usuário ... até que se substitua o python2.6 pelo 3.0 ou qualquer outro ... mas parece ser a maneira recomendada de fazer isso. Estou tendo problemas para acreditar que o CentOS não vem com uma ferramenta para selecionar a versão de vários pacotes instalados simultaneamente para usar (frequentemente encontro 2 versões de Java, PostgreSQL e agora python), algo como configure_python -s 2.6 e tudo "magicamente" se encaixa atrás das cortinas, sem que o usuário tenha que pensar em caixas de canto anos no futuro.
Tomislav Nakic-Alfirevic
Acho que a razão é que, sendo um sistema operacional corporativo usado principalmente para servidores, as pessoas não desenvolvem muito no Cent OS. Depois que tudo estiver configurado corretamente, eles não tocam no servidor, a menos para atualizações de segurança ocasionais.
Joyce Babu
1
@ TomislavNakic-Alfirevic Ainda não experimentei, mas github.com/yyuu/pyenv parece promissor. Ele constrói tudo a partir do código-fonte e instala cada versão em seu próprio diretório. Parece que é mais voltado para desenvolvedores instalando em seus próprios diretórios pessoais, mas as compilações podem ser executadas como sudo e direcionar para um diretório compartilhado.
Mark Evans de
@MarkEvans Python não é realmente meu ponto forte, então posso facilmente estar errado, mas pyenv parece uma solução para um problema diferente. Se você substituiu "python" por "JDK", definitivamente não ficaria feliz em compilá-lo apenas para poder implantar um aplicativo Java: quero a versão JDK que outra pessoa compilou, testou, retestou e testou novamente com qualquer versão do CentOS que estou usando. Eu tenderia a aplicar a mesma lógica ao Python. Dito isso, tenho certeza de que há casos de uso em que pyenv se destaca, como dev. (em oposição à implantação) máquinas.
Tomislav Nakic-Alfirevic
28

Quando me deparo com situações semelhantes, geralmente evito o gerenciador de pacotes, especialmente se for constrangedor quebrar algo, ou seja, um servidor de produção. Em vez disso, eu iria para Activestate e baixaria seu pacote binário:

https://www.activestate.com/activepython/downloads/

Isso é instalado executando um script que coloca tudo em uma pasta e não toca em nenhum arquivo do sistema. Na verdade, você nem precisa de permissões de root para configurá-lo. Então eu mudo o nome do binário para algo como apy26, adiciono essa pasta ao final do PATH e começo a codificar. Se você instalar pacotes com apy26 setup.py installou se usar virtualenv e easyinstall, terá um ambiente Python tão flexível quanto necessário, sem tocar no python padrão do sistema.

Edições ... Recentemente, fiz alguns trabalhos para construir um binário Python portátil para Linux que deve ser executado em qualquer distro sem dependências externas. Isso significa que todas as bibliotecas binárias compartilhadas necessárias para o módulo Python portátil são parte da construção, incluídas no tarball e instaladas na estrutura de diretório privado do Python. Desta forma, você pode instalar o Python para seu aplicativo sem interferir com o sistema Python instalado.

Meu site github tem um script de construção que foi completamente testado em instalações de 32 e 64 bits do Ubuntu Lucid 10.04 LTS. Eu também o construí no Debian Etch, mas isso foi há um tempo e não posso garantir que não mudei nada. A maneira mais fácil de fazer isso é apenas colocar sua escolha de Ubuntu Lucid em uma máquina virtual, verificar o script git clone git://github.com/wavetossed/pybuild.gite, em seguida, executar o script.

Depois de compilado, use o tarball em qualquer distro Linux recente. Há uma pequena dificuldade em movê-lo para um diretório diferente do /data1/packages/python272qual você deve executar o incluído patchelfpara definir o caminho do interpretador ANTES de mover o diretório. Isso afeta quaisquer binários em/data1/packages/python272/bin

Tudo isso é baseado na construção com RUNPATH e na cópia das bibliotecas compartilhadas dependentes. Mesmo que o script esteja em vários arquivos, ele é efetivamente um longo script de shell organizado no estilo dos diretórios /etc/rc.d.

Michael Dillon
fonte
4
Não sei qual era a licença no passado, mas infelizmente agora ela não permite que você use ActivePython em servidores externos, a menos que você compre a Business Edition ($$$). activestate.com/compare-editions
Nate
2
para evitar quebrar um servidor com gerenciador de pacotes, você depende de scripts de provedores de terceiros? huh
akostadinov
27

Não há necessidade de fazer yum ou fazer seu próprio RPM. Crie a python26partir da fonte.

wget https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
tar -zxvf Python-2.6.6.tgz
cd Python-2.6.6
./configure && make && make install

Pode haver um erro de dependência ao usar

yum install gcc cc

Adicione o caminho de instalação ( /usr/local/bin/pythonpor padrão) para ~/.bash_profile.

Não vai quebrar yumou qualquer outra coisa que dependa python24.

Rahul Arora
fonte
1
Nota: o compilador AC é necessário para que isso funcione. Não parece que vem estoque com CentOS 5 (pelo menos, o meu não tem um no PATH)
Cody S
./configure && make && make alt install ( toomuchdata.com/2014/02/16/how-to-install-python-on-centos )
luismartingil 12/11/2014
24

Não, é isso. Você pode querer ter certeza de ter todos os cabeçalhos de biblioteca opcionais instalados também, para não ter que recompilar mais tarde. Eles estão listados na documentação, eu acho.

Além disso, você pode instalá-lo até mesmo no caminho padrão se o fizer make altinstall. Dessa forma, ele não substituirá seu "python" padrão atual.

Lennart Regebro
fonte
4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz então ./configure-os make altinstall
Olivier Refalo
12

Chris Lea fornece um repositório YUM para python26 RPMs que podem coexistir com o 2.4 'nativo' que é necessário para algumas ferramentas de administração no CentOS.

Instruções rápidas que funcionaram pelo menos para mim:

$ sudo rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
$ sudo yum install python26
$ python26
Kimvais
fonte
3
Isso não funcionou no CentOS 5.4: Nenhum pacote python26 disponível.
Joseph Turian
3

Ao instalar sua versão python (neste caso, é python2.6), emita este comando para criar virtualenv:

virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/
user1427258
fonte
2

Atrasado para a festa, mas o OP deveria ter ido com Buildout ou Virtualenv e o problema completamente.

Atualmente, estou trabalhando em um servidor Centos, bem, labutar seria o termo adequado e posso garantir a todos que a única maneira de conter as lágrimas enquanto uso o software equivalente a lanças endurecidas por fogo é construindo.

chiggsy
fonte
2
você pode usar o virtualenv para instalar o python2.6 quando apenas o python2.4 está instalado?
Collin Anderson,
Certamente. Use a opção --no-site-packages no virtualenv, eu acredito, ou construa um python no buildout.
chiggsy
NÃO, o virtualenv apenas lida com módulos / pacotes python e suas versões. Ele ainda precisa ser apontado para um binário interpretador python funcional (já no sistema).
Jason Antman
1
rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
rpm -Uvh ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm
yum install python26
python26

para aqueles que simplesmente não sabem: =)

VPN barato
fonte
1
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

Baixe e instale o Python 3.3.0

# wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
# tar xf Python-3.3.0.tar.bz2
# cd Python-3.3.0
# ./configure --prefix=/usr/local
# make && make altinstall

Baixe e instale Distribute for Python 3.3

# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz
# tar xf distribute-0.6.35.tar.gz
# cd distribute-0.6.35
# python3.3 setup.py install

Instale e use o virtualenv para Python 3.3

# easy_install-3.3 virtualenv
# virtualenv-3.3 --distribute otherproject

New python executable in otherproject/bin/python3.3
Also creating executable in otherproject/bin/python
Installing distribute...................done.
Installing pip................done.

# source otherproject/bin/activate
# python --version
Python 3.3.0
Moddasir
fonte
0

Desinstalei a versão original do python (2.6.6) e instalei a 2.7 (com opção make && make altinstall), mas quando tentei instalar algo com o yum não funcionou.

Então, resolvi esse problema da seguinte maneira:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Baixe o pacote RPM python-2.6.6-36.el6.i686.rpm de http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6. 6-36.el6.i686.rpm.html
  3. Executar como root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Feito

user2544607
fonte
-1

Digite os seguintes comandos no terminal para instalar o Python 3.6 no CentOS 7:

$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm

Então faça :

$ sudo yum install python36u 

Você também pode instalar qualquer versão em vez de 3.6 (se desejar) substituindo 36 pelo número da versão.

Ayush Kumar Sharma
fonte