centos firstboot?bios里没有boot怎么办
如何在CentOS6上安装Python2.7和Python3.3
如何在CentOS 6上同时安装Python 2.7和Python 3.3
本文将介绍如何在CentOS 6上安装Python 2.7和3.3。下面以Python 2.7.6和Python 3.3.5为例进行说明,但本人实测该教程同样适合于Python3.4.0.
CentOS 6自带了Python 2.6.6(CentOS 7则自带了Python 2.7)和一些非常好用的功能,如yum。但是,注意不要随便升级自带的Python以免yum不可用。新版本将安装在/usr/local目录下以避免和自带的版本冲突。
虽然“我”只在64位的CentOS 6.5进行了尝试,但该教程应该适用于所有的CentOS 6版本(本人按此教程在CentOS 7上亦成功安装Python3.4)。
下面的示例命令您最好以root身份运行或者在命令前加sudo赋予权限。但注意,若不是以root身份执行的话,make与make install最好分开执行,并且都在前面加sudo,连着写,如sudo make&& make install的话会在make install过程中报权限不足问题,因为sudo不作用于&&后面的make install。
安装前准备
编译Python之前您最好先安装一系列的开发工具和一些拓展库,虽然不是必须的,但这样Python才能依赖这些工具和拓展库展示它强悍的功能。下面是利用yum进行工具和拓展库安装的示例命令,直接copy执行即可(注意部分命令显示不全,但可以通过移动光标查看和复制)。
yum groupinstall"Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
该考虑的因素
在您编译和安装Python之前,有些东西您是应该知道或考虑的。如下。
Unicode编码
Python编码问题历史悠久,但不用过多关注,知道它目前支持Unicode编码即可(Python3中默认的)。考虑到兼容性等原因,除非有特殊的理由,您最好配置下Python 3.2和更早的版本,使其支持UTF-32编码,虽然会增加小小的内存代价。在Python 2.7中您可以通过在configure时添加选项--enable-unicode=ucs4进行配置,而在Python 3.2中是--with-wide-unicode选项。
Shared library(动态共享库)
目前大部分的Linux系统自带的Python都是以共享库的方式编译的,此外,某些第三方工具例如mod_wsgi和Blender,没有Python的共享库还运行不了,所以,您最好还是把Python编译成动态共享库吧。为了以共享库方式编译Python,您必须指明共享库的路径。您有两种选择:
在configure命令后面添加:LDFLAGS="-Wl,-rpath/usr/local/lib"从而将库路径直接编译进Python中。
以记事本方式打开/etc/ld.so.conf,然后在文件最后添加新行:/usr/local/lib。紧接着运行命令/sbin/ldconfig更新动态链接器。添加后的文件内容在CentOS 6.5如下:
/etc/ld.so.conf
1
2
include ld.so.conf.d/*.conf
/usr/local/lib
使用“make altinstall”而不是make install
切记,在安装自定义版本的Python时,make altinstall命令是必须的!如果您使用一般的make install命令,呵呵,您将会在解压编译的目录下看到两个命名一样但版本不同的python,这有可能会导致一些意想不到的bug哦,具体是什么作者没说,我也不知道。
下载,编译,安装Python
如下命令可用于下载、编译和安装Python。注意,如果您打算安装后手动修改/etc/ld.so.conf文件以更新动态链接器,那么下面的 LDFLAGS参数您就可以去掉了。
1
2
3
4
5
6
7
8
9
10
11
12
13
# Python 2.7.6:
wget
tar xf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure--prefix=/usr/local--enable-unicode=ucs4--enable-shared LDFLAGS="-Wl,-rpath/usr/local/lib"
make&& make altinstall(此处切记,要么以root运行,要么分开执行!)
# Python 3.3.5:
wget
tar xf Python-3.3.5.tar.xz
cd Python-3.3.5
./configure--prefix=/usr/local--enable-shared LDFLAGS="-Wl,-rpath/usr/local/lib"
make&& make altinstall(此处切记,要么以root运行,要么分开执行!)
执行上述命令之后,您可以在/usr/local/bin/python2.7或/usr/local/bin/python3.3中找到新安装的Python。而Python 2.6.6则可能在/usr/bin/python,/usr/bin/python2或/usr/bin/python2.6找到。
下载和安装Setuptools+ pip
Setuptools早已取代Distribute成为Python官方的拓展包管理器,以用于从Python Package Index安装拓展功能包。不同版本的Python需要的Setuptools版本不同。建议您也通过Setuptools安装pip,它提供了一些额外在安装拓展功能包时很有用的功能。
以下的命令可用于安装最新版Setuptools和 pip。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# First
get the setup script for Setuptools:
wget
# Then
install it for Python 2.7 and/or Python 3.3:
python2.7ez_setup.py
python3.3ez_setup.py
# Now
install pip using the newly installed setuptools:
easy_install-2.7pip
easy_install-3.3pip
# With
pip installed you can now do things like this:
pip2.7install[packagename]
pip2.7install--upgrade[packagename]
pip2.7uninstall[packagename]
安装的拓展功能包在/usr/local/lib/pythonX.Y/site-packages/中可以找到(X.Y是Python的版本号)。
接下来干嘛?
如果您使用 Python 2.7,强烈建议您安装virtualenv并学会使用它,它可用于创建独立的 Python环境。如果您使用 Python 3.3的话就可以省心些,它已被内置了。
不同的 Python运行环境(也叫沙盒)可以有自己的 Python版本和拓展功能包,就是说不同的Python安装和运行的目录不同,也可以为每个版本的Python安装对应的名称一样但版本不同的拓展包。这在开发多个功能不同的项目或在同一个项目中需要用到不同版本的Python是会很有用的。
创建您第一个独立的Python环境
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Install
virtualenv for Python 2.7 and create a sandbox called my27project:
pip2.7installvirtualenv
virtualenv-2.7my27project
# Use
the built-in pyvenv program in Python 3.3 to create a sandbox called my33project:
pyvenv-3.3my33project
# Check
the system Python interpreter version:
python--version
# This
will show Python 2.6.6
# Activate
the my27project sandbox and check the version of the default Python interpreter in it:
sourcemy27project/bin/activate
python--version
# This
will show Python 2.7.6
deactivate
# Activate
the my33project sandbox and check the version of the default Python interpreter in it:
sourcemy33project/bin/activate
python--version
# This
will show Python 3.3.5
deactivate
当你使用 virtualenv创建一个运行沙盒时,它会自动在沙盒环境中为您安装setuptools和 pip(听起来不错,可以还没尝试过)。但如果您使用 pyvenv的话,您就必须自己动手安装了。也简单,激活沙盒之后通过运行下载的z_setup.py文件去安装即可。
centos系统扩容的问题
着是我经验成果,希望对你有帮助.
有一次我调整VPS的时候发现自己的/分区的空间用光了.但是还剩下一个分区hda3没动.于是乎.想调整到根下面去.但是由于本人新手一个.又不太了解linux的分区机制.所以.百度满世界找答案,终于还是找到了.现在将执行代码贴出来.希望对不有帮助.
以下是Centos5给/分区扩容代码.
[root@localhost~]# fdisk/dev/hda3
The number of cylinders for this disk is set to 3916.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time(e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command(m for help): p
Disk/dev/hda4: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units= cylinders of 16065* 512= 8225280 bytes
Disk identifier: 0x000bc363
Device Boot Start End Blocks Id System
/dev/hda1* 1 25 200781 83 Linux
/dev/hda2 26 1958 15526822+ 8e Linux LVM
/dev/hda3 1959 2610 5237190 8e Linux LVM
Command(m for help): n
Command action
e extended
p primary partition(1-4)
p
Selected partition 4
First cylinder(2611-3916, default 2611):
Using default value 2611
Last cylinder or+size or+sizeM or+sizeK(2611-3916, default 3916):
Using default value 3916
Command(m for help): t
Partition number(1-4): 4
Hex code(type L to list codes): 8e
Changed system type of partition 4 to 8e(Linux LVM)
Command(m for help): p
Disk/dev/hda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units= cylinders of 16065* 512= 8225280 bytes
Disk identifier: 0x000bc363
Device Boot Start End Blocks Id System
/dev/hda1* 1 25 200781 83 Linux
/dev/hda2 26 1958 15526822+ 8e Linux LVM
/dev/hda3 1959 2610 5237190 8e Linux LVM
/dev/hda4 2611 3916 10490445 8e Linux LVM
Command(m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
(注:建议重启一下CentOS系统)
[root@localhost~]# pvcreate/dev/hda3
Physical volume"/dev/hda4" successfully created
[root@localhost~]# vgextend VolGroup00/dev/hda3
Volume group"VolGroup00" successfully extended
[root@localhost~]# lvextend-l+100%FREE/dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 28.25 GB
Logical volume LogVol00 successfully resized
[root@localhost~]# lvresize-l+100%FREE/dev/VolGroup00/LogVol00
New size(904 extents) matches existing size(904 extents)
lvresize: Resize a logical volume
lvresize
[-A|--autobackup y|n]
[--alloc AllocationPolicy]
[-d|--debug]
[-h|--help]
[-i|--stripes Stripes [-I|--stripesize StripeSize]]
{-l|--extents [+|-]LogicalExtentsNumber[%{VG|LV|FREE}]|
-L|--size [+|-]LogicalVolumeSize[kKmMgGtTpPeE]}
[-n|--nofsck]
[-r|--resizefs]
[-t|--test]
[--type VolumeType]
[-v|--verbose]
[--version]
LogicalVolume[Path] [ PhysicalVolumePath... ]
[root@localhost~]# resize2fs/dev/VolGroup00/LogVol00
resize2fs 1.40.2(12-Jul-2007)
Filesystem at/dev/VolGroup00/LogVol00 is mounted on/; on-line resizing required
old desc_blocks= 2, new_desc_blocks= 2
Performing an on-line resize of/dev/VolGroup00/LogVol00 to 7405568(4k) blocks.
The filesystem on/dev/VolGroup00/LogVol00 is now 7405568 blocks long.
centos虚拟机LVM扩容方法:
1、在esxi4.0硬件配置界面,将硬盘直接由原来100G增大到256G
2、用安装光盘启动进入紧急救援系统
3、将增加空间进行分区,我是用Linux下的分区魔术师GParted,光驱启动后,在图形界面下增加一个sda3。其实应该可以用fdisk与parted完成,我没有操作。
4、为了使用 LVM先初始化一块 physical volumn:
pvcreate/dev/sda3
5、然后把它加到卷组(volumn group)里去:
vgextend vgextend VolGroup00/dev/sda3
其中卷组名是通过 vgdisplay看到的。这些命令非常有用: fdisk, parted, mkfs.ext3, df, mount,另外还有/etc/fstab文件。
6、上面加入卷组成功后,扩展逻辑卷的容量,这个逻辑卷就是挂载到/上的分区,可以通过 mount来看到:
lvextend-L+4.5G/dev/VolGroup00/LogVol00
7、最后是两条命令:
e2fsck-f/dev/VolGroup00/LogVol00
resize2fs/dev/VolGroup00/LogVol00
Centos的Inode和Block的相关知识
本经验均在CentOSrelease6.7(Final)下操作,如知识有欠缺之处欢迎批评指正。
linux的inode及block的相关知识:
1> Linux系统分区格式化文件系统之后,系统会分为Inode及Block两部分:
1)Inode为系统文件的属性信息(ls-l的结果)及指向文件实体的指针,但是没有存放文件名,一般在上级目录里的Block。
2)Block为存放数据的,ext3/ext4一般为1k,2k,4k,一般默认4k
3)一个文件不论多大至少占用一个Inode和一个Block,一个Block只能存放一个文件的内容,block的数量大于Inode的数量,多个文件可以占用同一个 inode(硬链接)。
4)访问文件,通过文件-->inode(验证权限)--->blocks.
5)inode一般情况默认256B,block大小1k,2k,4k,默认4k,注意,引导分区等特殊分区除外。
6)通过df-i查看inode的数量及使用情况,dumpe2fs/dev/sda1查看inode及block的大小和数量。
7)一个block只能被一个文件使用,如果一个文件很小block太大,剩余空间浪费,无法继续被其他文件使用。
8)block不是越大越好,根据业务的文件大小进行选择,一般就是默认 4k。
9)可以在格式化的时候改变inode及block的大小,使用mkfs.ext4-b 2048-I 1024/dev/sdb2
2>Linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
1.命令格式:
df [选项] [文件]
2.参数:
df-i查看参数多少个
[root@techW~]# df-iFilesystem Inodes IUsed IFree IUse% Mounted on/dev/mapper/vg_techw-lv_root 1152816 55846 1096970 5%/tmpfs 125596 1 125595 1%/dev/shm/dev/sda1 128016 38 127978 1%/boot
df-h查看磁盘大小:
[root@techW~]# df-hFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg_techw-lv_root 18G 1.5G 15G 9%/tmpfs 491M 0 491M 0%/dev/shm/dev/sda1 477M 36M 416M 8%/boot
查看当前系统分区的Inode及Block的总量及使用量:
[root@techW~]# dumpe2fs/dev/sda1| grep-i"block size"dumpe2fs 1.41.12(17-May-2010)Block size: 1024[root@techW~]# [root@techW~]# [root@techW~]# dumpe2fs/dev/sda1| grep-i"inode size"dumpe2fs 1.41.12(17-May-2010)Inode size: 128###boot分区为128,常规分区为256[root@techW~]# [root@techW~]# [root@techW~]# dumpe2fs/dev/sda1| grep-i"inode count"dumpe2fs 1.41.12(17-May-2010)Inode count: 128016[root@techW~]# [root@techW~]# dumpe2fs/dev/sda1| grep-i"block count"dumpe2fs 1.41.12(17-May-2010)Block count: 512000Reserved block count: 25600
3>添加一块磁盘,格式化,改变Inode及 Block的大小,挂载查看硬盘的Inode及Block数量:
1)添加一块5G的磁盘,为方便区分设置为/dev/sdb,fdisk分区,然后mkfs.ext4格式化
(虚拟机增加一块5G的硬盘,分区,格式化)
[root@techW~]# fdisk/dev/sdbDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x2d37eabe.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode(command'c') and change display units to sectors(command'u').Command(m for help): n### add a new partitionCommand action e extended p primary partition(1-4)pPartition number(1-4): 2###为做区分,选择2First cylinder(1-652, default 1): Using default value 1Last cylinder,+cylinders or+size{K,M,G}(1-652, default 652): Using default value 652Command(m for help): w### write table to disk and exitThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
分区时的参数命令:
a toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partitionl list known partition typesm print this menun add a new partitiono create a new empty DOS partition tablep print the partition tableq quit without saving changess create a new empty Sun disklabelt change a partition's system idu change display/entry unitsv verify the partition tablew write table to disk and exitx extra functionality(experts only)
[root@techW~]# mkfs.ext4/dev/sdb2mke2fs 1.41.12(17-May-2010)Filesystem label=OS type: LinuxBlock size=4096(log=2)###默认的Block的大小为4096Fragment size=4096(log=2)Stride=0 blocks, Stripe width=0 blocks327680 inodes, 1309289 blocks65464 blocks(5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=134217728040 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736Writing inode tables: done Creating journal(32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 26 mounts or180 days, whichever comes first. Use tune2fs-c or-i to override.
2)###inode的大小范围为128-2048,block的大小范围为1024-4096####
3)将Block和Inode的大小都改为2048:
[root@techW~]# mkfs.ext4-b 2048-I 2048/dev/sdb2mke2fs 1.41.12(17-May-2010)Filesystem label=OS type: LinuxBlock size=2048(log=1)Fragment size=2048(log=1)Stride=0 blocks, Stripe width=0 blocks326400 inodes, 2618578 blocks130928 blocks(5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=540016640160 block groups16384 blocks per group, 16384 fragments per group2040 inodes per groupSuperblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000Writing inode tables: done Creating journal(32768 blocks): doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 30 mounts or180 days, whichever comes first. Use tune2fs-c or-i to override.
4)使用dumpe2fs命令查询Inode和Block的大小:
[root@techW~]# dumpe2fs/dev/sdb2| grep"Inode size"dumpe2fs 1.41.12(17-May-2010)Inode size: 2048###大小更改成功[root@techW~]# s/dev/sdb2| grep"Block size"dumpe2fs 1.41.12(17-May-2010)Block size: 2048###大小更改成功