yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
网址:https://www.python.org/downloads/release/python-362/前端
下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgzpython
这一步通常用来生成 Makefile,为下一步的编译作准备,你能够经过在 configure 后加上参数来对安装进行控制,好比代码:mysql
./configure --prefix=/usr
上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。linux
同时一些软件的配置文件你能够经过指定 --sys-config= 参数进行设定。有一些软件还能够加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你能够经过容许 ./configure --help 察看详细的说明帮助。nginx
这一步就是编译,大多数的源代码包都通过这一步进行编译(固然有些perl或python编写的软件须要调用perl或python来进行编译)。redis
若是 在 make 过程当中出现 error ,你就要记下错误代码(注意不只仅是最后一行),而后你能够向开发者提交 bugreport(通常在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些须要本身仔细研究错误代码。sql
make 的做用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,好比 make install 通常表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。数据库
make 是 Linux 开发套件里面自动化编译的一个控制程序,他经过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些须要的程序进行编译的程序。通常状况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。macos
这条命令来进行安装(固然有些软件须要先运行 make check 或 make test来进行一些测试),这一步通常须要你有 root 权限(由于要向系统写入文件)django
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
xz -d Python-3.6.7.tar.xz
tar -xf Python-3.6.7.tar
#yum install gcc -y
./configure --prefix=/opt/python make && make install
---------------------
用python查看默认安装路径
>>> import sys
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6',
'/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
--------------------
python3.4默认没添加path
在/etc/profile最后一行添加
export PATH=$PATH:/opt/python/bin
而后
source /etc/profile
#python快捷path就被改了,yum用的python2,麻烦
编译安装python3 1.切换opt目录(这是一个约定) cd /opt 2.下载python3的源代码 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz 3.安装python前的库环境,很是重要 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y 4.解压缩python3的源代码压缩文件 cd /opt/ 进入存在这个文件的目录 tar -xf Python-3.6.2.tgz 解压 5.cd Python-3.6.2/ 进入源代码目录下,准备开始编译安装 6.编译安装三部曲 第一曲: cd Python-3.6.2/ #configure 这个脚本文件,只是为了释放makefile,用于指定python3安装到哪里 ./configure --prefix=/opt/python36 --with-ssl --prefix 这个参数用于指定python安装的路径 第二曲: 执行make开始编译python3.6的源代码 make 第三曲: make install 生成/opt/python36 (第二曲和第三曲能够写成 make && make install) 7.配置环境变量 echo $PATH #$PATH是有优先级顺序的 将/opt/python36/bin/放入环境变量,注意要添加到path的最前面 #变量的赋值只是临时有效 PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" #将这个参数,写入到Linux的全局变量配置文件中 vim /etc/profile #打开这个全局变量文件,写入PATH="/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"到文件最后 8.退出(logout),从新加载全局变量. 9.which python3 确认是否正确安装 10.不要将系统默认的python 改为python3 这是一个大坑。 (由于Linux有不少工具,默认是用的python2,例如yum) 11.在Linux下安装django程序 pip3 install -i https://pypi.douban.com/simple django==1.11.16 pip3 install django==1.11.16 pip3 list 12.使用django命令建立项目 [root@localhost ~]# cd /opt [root@localhost opt]# django-admin startproject mysite 13.修改mysite的settings.py中的ALLOWED_HOSTS vim /opt/mysite/mysite/settings.py #/查找 ALLOWED_HOSTS = ["*"] 14.启动项目 [root@localhost opt]# cd mysite/ [root@localhost mysite]# python3 manage.py runserver 0.0.0.0:9999 补充: python3的管理工具是pip3 install flask python2的是easy_install flask [root@localhost ~]# python -V Python 2.7.5 [root@localhost ~]# python --version Python 2.7.5 [root@localhost ~]# python3 --version Python 3.6.2 [root@localhost ~]# pip3 list DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning. Django (1.11.16) pip (9.0.1) pytz (2019.2) setuptools (28.8.0) You are using pip version 9.0.1, however version 19.2.3 is available. You should consider upgrading via the 'pip install --upgrade pip' command. [root@localhost ~]#
下载setuptool 3.4以上已经默认安装了easy_install-3.4
下载地址: https://pypi.python.org/pypi/setuptools/36.2.7 下载命令: wget https://pypi.python.org/packages/07/a0/11d3d76df54b9701c0f7bf23ea9b00c61c5e14eb7962bb29aed866a5844e/setuptools-36.2.7.zip#md5=b9e6c049617bac0f9e908a41ab4a29ac 解压: unzip setuptools-36.2.7.zip 编译: python3 setup.py build python2 setup.py build 无误后安装: python3 setup.py install python2 setup.py install
下载readline
#yum install -y readline-devel -y #pip install readline
tab补全
#python startup file
import readline,rlcompleter
#tab completion
readline.parse_and_bind('tab:complete')
----------------------------
python历史记录
#history file
import os
history_file = os.path.join(os.environ["HOME"],".pythonhistory")
[root@mm_local ~]# echo "export PYTHONSTARTUP='/root/.pythonstartup'" >> /root/.bashrc [root@mm_local ~]# source /root/.bashrc [root@mm_local ~]# cat /root/.pythonstartup import os import readline import rlcompleter import atexit #tab completion readline.parse_and_bind("tab: complete") #history file history_file = os.path.join(os.environ["HOME"],".pythonhistory") try: readline.read_history_file(history_file) except IOError: pass atexit.register(readline.write_history_file,history_file) del os,history_file,readline,rlcompleter [root@mm_local ~]# python Python 2.7.3 (default, Jun 5 2013, 22:40:26) [GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path<tab> #按tab键就能够自动补全了 [root@mm_local ~]# python >>> >>> sys.path #按上下方向键便可找到历史命令
只须要启动时执行一条命令便可 import rlcompleter, readline readline.parse_and_bind('tab:complete') 能够将上述的代码存于~/.pythonrc.py文件中。 而后,在~/.bashrc中设置 export PYTHONSTARTUP=~/.pythonrc.py 这样,每次启动终端,bash就会设置PYTHONSTARTUP这个环境变量,而后,python启动时就会使用这个变量指定的文件中的初始化代码。 在python解释器中,输入一个变量的一部分,或者变量后面加句点,再按TAB键就能够看到自动补全的威力。
#安装此软件,便可拖拽上传下载linux代码到windows
yum install lrzsz
软件包是什么?
软件包顾名思义就是将应用程序、配置文件和数据打包的产物,全部的linux发行版都采用了某种形式的软件包系统,这使得linux软件管理和在windows下同样方便,suse、red hat、fedora等发行版都是用rpm包,Debian和Ubuntu则使用.deb格式的软件包。
程序(软件)组成部分: 二进制程序 可执行命令 库 .so文件 配置文件 .conf 帮助文件 readme /usr/share/man
如图
mysql-5-3-4.rpm redis-3-4-3.rpm nginx2-3-2.rpm
在 RPM(红帽软件包管理器)公布以前,要想在 Linux 系统中安装软件只能采起源码包 的方式安装。早期在 Linux 系统中安装程序是一件很是困难、耗费耐心的事情,并且大多数 的服务程序仅仅提供源代码,须要运维人员自行编译代码并解决许多的软件依赖关系,所以 要安装好一个服务程序,运维人员须要具有丰富知识、高超的技能,甚至良好的耐心。并且在 安装、升级、卸载服务程序时还要考虑到其余程序、库的依赖关系,因此在进行校验、安装、 卸载、查询、升级等管理软件操做时难度都很是大。
RPM 机制则为解决这些问题而设计的。RPM 有点像 Windows 系统中的控制面板,会建 立统一的数据库文件,详细记录软件信息并可以自动分析依赖关系。
软件包管理器核心功能:
实例
#如今要安装mysql #下载地址 https://dev.mysql.com/downloads/mysql/
安装软件的命令格式 rpm -ivh filename.rpm # i表示安装 v显示详细过程 h以进度条显示 升级软件的命令格式 rpm -Uvh filename.rpm 卸载软件的命令格式 rpm -e filename.rpm 查询软件描述信息的命令格式 rpm -qpi filename.rpm 列出软件文件信息的命令格式 rpm -qpl filename.rpm 查询文件属于哪一个 RPM 的命令格式 rpm -qf filename
#下载软件包
wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
#安装软件包
[root@yugo /tmp 11:03:42]#rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:lrzsz-0.12.20-36.el7 ################################# [100%]
rpm -q lrzsz #查询lrzsz是否安装 rpm -qi lrzsz #查询lrzsz包的说明信息 rpm -ql lrzsz #查询lrzsz包生成的文件列表 rpm -qc nginx #查询nginx安装生成后的配置文件路径 rpm -qf /etc/nginx/fastcgi.conf #查看这个文件由哪一个rpm包安装
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 若是装有老版本的,则升级;不然,则安装; rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:若是装有老版本的,则升级;不然,退出;
rpm -e PACKAGE_NAME
须要手动解决依赖
不如 yum remove
其一,难以删除
[root@pyyuc /tmp 11:42:01]#rpm -e nginx error: Failed dependencies: nginx is needed by (installed) nginx-mod-mail-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-perl-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-xslt-filter-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-image-filter-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-stream-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-geoip-1:1.12.2-2.el7.x86_64
其二,难以安装
[root@pyyuc /tmp 11:45:07]#rpm -ivh zsh-5.6.2-9.6.2.aarch64.rpm warning: zsh-5.6.2-9.6.2.aarch64.rpm: Header V3 RSA/SHA256 Signature, key ID 3dbdc284: NOKEY error: Failed dependencies: ld-linux-aarch64.so.1()(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libdl.so.2(GLIBC_2.17)(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libm.so.6(GLIBC_2.17)(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libncursesw.so.6()(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libtinfo.so.6()(64bit) is needed by zsh-5.6.2-9.6.2.aarch64
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可使系统管理人员交互和自动化地更细与管理RPM软件包,可以从指定的服务器自动下载RPM包而且安装,能够自动处理依赖性关系,而且一次安装全部依赖的软体包,无须繁琐地一次次下载、安装。
尽管 RPM 可以帮助用户查询软件相关的依赖关系,但问题仍是要运维人员本身来解决, 而有些大型软件可能与数十个程序都有依赖关系,在这种状况下安装软件会是很是痛苦的。 Yum 软件仓库即是为了进一步下降软件安装难度和复杂度而设计的技术。Yum 软件仓库能够 根据用户的要求分析出所需软件包及其相关的依赖关系,而后自动从服务器下载软件包并安 装到系统。
Yum 软件仓库中的 RPM 软件包能够是由红帽官方发布的,也能够是第三方发布的,当 然也能够是本身编写的。
对比windows下的软件管理工具
yum提供了查找、安装、删除某一个、一组甚至所有软件包的命令,并且命令简洁而又好记。
yum(选项)(参数)
-h:显示帮助信息;
-y:对全部的提问都回答“yes”; -c:指定配置文件; -q:安静模式; -v:详细模式; -d:设置调试等级(0-10); -e:设置错误等级(0-10); -R:设置yum处理一个命令的最大等待时间; -C:彻底从缓存中运行,而不去下载或者更新任何头文件。
实例
部分经常使用的命令包括: 自动搜索最快镜像插件 yum install yum-fastestmirror
什么是yum源?
yum源的目录
#进入yum源目录 cd /etc/yum.repos.d/ #查看yum源文件 ls -l
配置阿里云yum源
1.好习惯,备份yum源 mkdir repo_bak mv *.repo repo_bak/
2.下载阿里云repo文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3.清空yum缓存而且生成新的yum缓存
yum clean all
yum makecache
4.安装软件扩展源
yum install -y epel-release
yum repolist all 列出全部仓库 yum list all 列出仓库全部软件包 yum info 软件包名 查看软件包信息 yum install 软件包名 安装软件包 yum reinstall 软件包名 从新安装软件包 yum update 软件包名 升级软件包 yum remove 软件包名 移除软件包 yum clean all 清楚全部仓库缓存 yum check-update 检查能够更新的软件包 yum grouplist 查看系统中已安装的软件包 yum groupinstall 软件包组 安装软件包组