RPM早期被稱爲RedHat Package Manager,但因爲目前RPM很是流行,且已經成爲Linux工業標準。因此RPM如今又被稱爲RPM is Package Manager。html
RPM管理支持事務機制。加強了程序安裝卸載的管理。前端
RPM的功能:打包、安裝、查詢、升級、卸載、校驗、數據庫管理。python
可是RPM沒法解決軟件包的依賴關係。由於Linux中的程序大可能是小程序,而程序與程序之間存在很是複雜的依賴關係。mysql
光盤掛載linux
# 只要掛載好光盤,安裝軟件會顯的特別方便 # 1.把/dev/cdrom掛載到/mnt mount /dev/cdrom /mnt # 進入/mnt查看,你會發現有一個Packages的目錄,裏面有全部下載安裝的包 cd /mnt ls
使用ios
# 安裝rpm包 rpm -ivh 包名 # 更新rpm包 rpm -Uvh 包名 # 卸載rpm rpm -e 包名 # rpm包的查詢 rpm -q 包名 # 查詢過濾 rpm -qa |grep vsf # 查詢文件所在路徑 which vim # 查詢某文件是由哪一個rpm包安裝生成的 rpm -qf /usr/bin/vim
YUM是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。nginx
YUM使用Python語言寫成。YUM客戶端基於RPM包進行管理,能夠經過HTTP服務器下載、FTP服務器下載、本地軟件池的等方式得到軟件包,能夠從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係。c++
YUM在安裝RPM時,會從服務器下載相應包,且緩存在本地。redis
使用YUM進行RPM包的管理,很是簡單方便。sql
更改yum站點源
# 使用aliyun yum站點源 # BASE源:一些基本的軟件包 # 1.進入yum的源 cd /etc/yum.repos.d/ # 2.該文件夾裏有安裝系統是自動從官方下載的源,能夠不要,咱們把它挪走 mv *.repo /tmp # 3.獲取阿里的源 wget http://mirrors.aliyun.com/repo/Centos-7.repo # EPEL源:擴展的軟件包 yum install -y epel-release
操做
# yum安裝軟件 # -y:下載軟件後會遇到選項:是否安裝,有了-y會默認安裝 # openssl openssl-devel :這兩個必定要先安裝 yum install -y openssl openssl-devel # 軟件包查詢 yum list |grep vsftpd # 軟件包組查詢 yum grouplist # 軟件包組安裝 yum groupinstall "Development Tools" # 卸載軟件包 yum remove
優化yum源
# 本地鏡像yum源(光盤掛載到/mnt下) # 掛在之後,下載yum源會從本地光盤找 # 1.進入yum的源,必須把/etc/yum.repos.d/裏的.repo結尾的文件挪走,linux先看到哪一個配置,就用哪一個配置文件 cd /etc/yum.repos.d/ # 2.建立一個yum的配置文件必須是.repo結尾 vim local.repo # 3.在編輯模式中 [local] name=localios baseurl=file:///mnt # 掛載到本地文件/mnt gpgcheck=0 # 4.清空yum的緩存 yum clean all # 局域網yum源(ftp) # 本地鏡像yum源必須隨身攜帶關盤,比較麻煩,因此搭建局域網yum源,能夠經過局域網下載軟件 # 1.安裝ftp軟件 yum install -y vsftpd # 2.啓動ftp服務,並設置開機自啓動 systemctl start vsftpd systemctl enable vsftpd # 3.建立站點目錄,並將光盤軟件拷貝其中 # 如今就能夠經過ftp://IP地址/pub/centos7/訪問 cp -a /mnt/* /var/ftp/pub/centos7 # 4.若是你的電腦想要經過局域網下載軟件,就須要配置repo文件 # 具體步驟和本地鏡像yum源差很少 # 惟一不一樣的是配置 [ftp] name=centos7 baseurl=ftp://10.0.0.100/pub/centos7 gpgcheck=0
解壓
# .zip unzip xxx.zip # .tar .tar.gz .tgz.tar.bz2 .tar.xz tar xf xxx.tar # .iso 掛載 mount -o loop xxx.iso /test # .cpio cpio -idcmv < xxx.cpio
安裝
# 把壓縮文件放到/opt裏 cd /opt # mysql 源碼包 # 1 cmake # 2.編譯 make make install # 或 make && make install # python3.6源碼包安裝 # 解壓後進入文件 # 1.定製功能 ./configure # 2.編譯 make make install # 或 make && make install # redis 源碼包安裝 # 解壓後進入文件 # 1.編譯 make # 2.修改環境變量 vim /etc/profile # 添加如下一行: export PATH=/opt/redis-3.2.10/src:$PATH # 3.生效配置 source /etc/profile
python連接redis
# 解壓後進入文件 cd redis-py-master # 用python3運行 python3 setup.py install # 測試 #運行python3 [root@xcq redis-py-master]# python3 >>> import redis >>> r = redis.StrictRedis(host='localhost', port=6379) >>> r.set('name', 'oldguo') True >>> r.get('name') b'oldguo'
安裝及配置mysql
# 1.解壓及製做軟鏈接 tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql # 2.編輯環境變量 vim /etc/profile # 添加如下一行: export PATH=/opt/mysql/bin:$PATH # 3.生效配置: source /etc/profile # 4.卸載自帶mariadb yum remove mariadb-libs # 5.生成配置文件(/etc/my.cnf) vim /etc/my.cnf # 內容 [mysqld] basedir=/opt/mysql datadir=/opt/mysql/data socket=/tmp/mysql.sock user=mysql log_error=/var/log/mysql.log log_bin=/opt/mysql/data/mysql-bin server_id=100 [mysql] socket=/tmp/mysql.sock # 6.建立用戶和數據目錄,並受權 # 對mysql操做時,默認要有一個mysql用戶 useradd mysql mkdir /opt/mysql/data chown -R mysql.mysql /opt/mysql # 7.初始化數據 touch /var/log/mysql.log chown -R mysql.mysql /var/log/mysql.log mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
啓動mysql
# 1.進入目錄 cd /opt/mysql/support-files # 2.執行腳本 ./mysql.server start # 爲了啓動方便,把mysql.serve,移動到/etc/init.d/mysqld # 這樣就不用每次要進入目錄在啓動 cp mysql.server /etc/init.d/mysqld # 之後用這條命令啓動mysql /etc/init.d/mysqld start # 擴展:使用systemctl 管理mysql vim /etc/systemd/system/mysqld.service # 配置 [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 # 配置好以後,之後就用systemctl來啓動mysql systemctl start mysqld
python3連接mysql
# 建立mysql連接用戶 [root@xcq redis-py-master]# mysql mysql> grant all on *.* to root@'10.0.0.%' identified by '123'; Query OK, 0 rows affected, 1 warning (0.13 sec) mysql> create database bbs charset utf8; # python代碼測試 pip3 install pymysql vim testmysql.py import pymysql db = pymysql.connect("10.0.0.100","root","123","bbs" ) cursor.execute("SELECT VERSION()") data = cursor.fetchone() print ("Database version : %s " % data) db.close() python3 testmysql.py
LNMP = Linux Nginx MySQL PHP
# 1.新建官方Nginx yum源的repo配置文件 vim /etc/yum.repos.d/nginx.repo # 配置官方Nginx yum源 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 # 2.下載安裝 yum install nginx -y # 3.啓動Nginx,並將Nginx加入開機自啓 systemctl start nginx systemctl enable nginx # 以後就能夠經過http://10.0.0.100(IP地址)訪問頁面了
# 1.安裝依賴包 yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y # 2.安裝Django和uwsgi,以及一堆模塊 vim re.txt asn1crypto==0.24.0 beautifulsoup4==4.6.3 bs4==0.0.1 certifi==2018.4.16 cffi==1.11.5 chardet==3.0.4 Click==7.0 cryptography==2.3.1 Django==1.11.9 Flask==1.0.2 Flask-Cors==3.0.6 gevent==1.3.6 greenlet==0.4.15 idna==2.7 ItsDangerous==1.1.0 Jinja2==2.10 lxml==4.2.6 MarkupSafe==1.0 numpy==1.15.3 Pillow==5.3.0 pycparser==2.18 PyMySQL==0.9.2 pytz==2018.7 requests==2.19.1 selenium==3.141.0 six==1.11.0 urllib3==1.23 virtualenv==16.1.0 Werkzeug==0.14.1 wordcloud==1.5.0 pip3 install -i https://pypi.doubanio.com/simple/ -r re.txt
# uwsgi能夠經過端口訪問Django項目了 # 1.安裝 pip3 install -i https://pypi.doubanio.com/simple/ uwsgi # 2.測試uwsgi是否正常 # 新建test.py文件 vim test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello Django"] # 運行 # & :在後臺運行 # 咱們就能夠在瀏覽器經過10.0.0.100(IP地址):8001訪問 uwsgi --http :8001 --wsgi-file test.py & # 3.測試django是否正常,運行: # 新建django項目demosite django-admin.py startproject demosite # 進入項目demosite根目錄 cd demosite # 運行項目demosite python3 manage.py runserver 0.0.0.0:8002 # 在瀏覽器內輸入:http://10.0.0.100:8002,檢查django是否運行正常。 # 注:測試Django項目時,要在settings.py中配置ALLOWED_HOST=['*'],放開全部地址均可以訪問
# 爲何要nginx+uwsgi一塊兒來配置,由於 # 單獨只用uwsgi的話會顯示出端口號,若是加上nginx就不會顯示出端口 # 能隱藏本身的真實端口,對於用戶來講只是訪問了域名而已 # 1.配置uwsgi # 在Django項目根目錄建立uwsgi.ini vim /root/demosite/uwsgi.ini # 配置uwsgi.ini [uwsgi] socket = 127.0.0.1:9999 master = true workers = 2 max-requests = 1000 buffer-size = 30000 pidfile = /run/uwsgi.pid daemonize = /var/log/uwsgi.log # 以Django項目裏的uwsgi.ini的配置來啓動uwsgi uwsgi --ini /root/demosite/uwsgi.ini & # 2.配置Nginx vim /etc/nginx/conf.d/py.conf # 配置 server { # 監聽來自80端口的請求 listen 80; # IP地址 server_name 10.0.0.100; client_max_body_size 100M; location / { index index.html; include uwsgi_params; # 同uwsgi內容,經過這個去訪問uwsgi uwsgi_pass 127.0.0.1:9999; # Django項目demosite的wsgi uwsgi_param UWSGI_SCRIPT demosite.wsgi; # 要配置Django項目目錄 uwsgi_param UWSGI_CHDIR /root/demosite; } } # 重啓nginx systemctl restart nginx # 配置好後就能夠經過http://10.0.0.100訪問Django