5.4 RHEL 环境 python 升级 yum 不能正常工作

   1、下载
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2

2、解压
tar jxvf Python-2.7.2.tar.bz2

3、编译安装
cd Python-2.7.2
./configure
make && make install
Python 默认安装目录在/usr/local/lib/python2.7
查看一下刚才安装的版本 /usr/local/bin/python  -V,看到了2.7.2

4、更改系统默认版本
之前查看版本使用    /usr/local/bin/python -V ,现在来把系统默认的Python指向刚才安装的Python2.7.2。
(yum是基于2.4.3,所以不要卸载)
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python2.6 /usr/bin/python
python -V 查看是否成功。

5、修复不能正常工作的yum
在完成了上面4步之后,如果有使用yum的话会发现出错,这是因为yum 依赖2.4.3而现在默认的 Python 版本是2.7.2。
vim /usr/bin/yum
将首行显示的 !#/usr/bin/python 修改为 !#/usr/bin/python2.4
保存。


    python  -V    查看当前版本
    ulimit   -n   65500   修改参数

  python netbench.py --host   ip   -p 80 -c 50000
    
下面的是测试网站并发量的
[root@localhost ~]# cat netbench.py 
# encoding: utf-8

import sys
import socket
import select
import time
import argparse

def netbench():
    s = socket.socket()
    s.connect(('r.domob.cn', 80))
    s.send('GET /bbb HTTP/1.1\r\nHost: r.domob.cn\r\n\r\n')
    data = s.recv(2048)
    s.close()
    print data

def run(hostname, port, desiredConnection):
    currentConnection = 0
    epoll = select.epoll()

    connections = {}
    while True:
        while currentConnection < desiredConnection:
            s = socket.socket()
            try:
                s.connect((hostname, port))
                currentConnection += 1
                connections[s.fileno()] = s
                epoll.register(s, select.POLLIN|select.EPOLLERR)
                print "%d connections made, fileno=%d" % (currentConnection, s.fileno())
            except Exception,e:
                print e
                time.sleep(1)
                continue

        fd_events = epoll.poll()
        for sock, event in fd_events:
            s = connections[sock]
            s.close()
            del connections[sock]
            currentConnection -= 1
            print "CLOSED --- fd=%d. with event %d, left %d connections" % (sock, event, currentConnection)
        

def parse_arg():
    parser = argparse.ArgumentParser(description='yet another bench mark tool.')
    parser.add_argument('--host', required=True,
                        help='target hostname or ip')
    parser.add_argument('-p', '--port', required=True, type=int,
                        help='target port')
    parser.add_argument('-c', '--connections', required=True, type=int,
                        help='Number of connections to make')
    args = parser.parse_args()
    return args
    
if __name__ == '__main__':
    args = parse_arg()
    print args.host
    run(args.host, args.port, args.connections)

你可能感兴趣的:(python,yum)