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 軟件包組 安裝軟件包組