uname -a (Debian查看版本当前操作系统内核
cat /etc/debian_version 查看debian版本号

#备份一下软件源
sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak

一般情况下,将 /etc/apt/sources.list 文件中 Debian 默认的源地址 http://deb.debian/ 替换为 http://mirrors.ustc.edu 即可。
更新源

#!/bin/bash
cat >/etc/apt/sources.list <<EOF
deb http://mirrors.163/debian/ stretch main non-free contrib
deb http://mirrors.163/debian/ stretch-updates main non-free contrib
deb http://mirrors.163/debian/ stretch-backports main non-free contrib
deb-src http://mirrors.163/debian/ stretch main non-free contrib
deb-src http://mirrors.163/debian/ stretch-updates main non-free contrib
deb-src http://mirrors.163/debian/ stretch-backports main non-free contrib
deb http://mirrors.163/debian-security/ stretch/updates main non-free contrib
deb-src http://mirrors.163/debian-security/ stretch/updates main non-free contrib
EOF
1
2
3
4
5
6
7
8
9
10
11
sudo apt update
1
安装依赖

sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
1
cd boo #一个下载的目录
1
安装 curl

apt-get install curl
curl -O https://www.python/ftp/python/3.5.2/Python-3.5.2.tar.xz
tar -xf .tar
无法解压:
apt install -y xz-utils

安装解压python3包

cd到Python源目录
cd Python-3.5.2

tar -xf Python-3.5.2.tar

2.5 安装python3依赖包
apt -y install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev

2.6 编译安装
#配置安装的位置
./configure --prefix=/usr/local/python3 --with-ssl

编译源码
》》make all

#安装python二进制文件
make altinstall

创建Python3和pip3软链接,将系统命令python3、pip3指向刚安装的python3、pip3
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

安装python时出现Ignoring ensurepip failure:pip required SSL/TLS

因为没有安装OpenSSL

使用yum install openssl-devel;

但是我的安装出现 There are no enabled repos…

好像是因为没有配置yum 源;处理半天解决不了

直接安装openssl-devel sudo apt-get install libssl-dev

就可以了

最开始apt install python-pip,但是之后下载的类库却下到python2里去了。又升级也不行,运行项目也变成了python2运行。

又安装pip3。
用sudo 下的 apt install python3-pip
apt install vim
apt install git

1 终端启动
$ export FLASK_APP=helloworld
$ flask run

附Debian学习:

1).Apt-get 命令,用于获取软件安装包:

apt-setup 设置Apt源.可选择列表或者手工导入

apt-get update 系统软件包更新

apt-get upgrade 更新所有软件包并且自动升级成最新

apt-get dist-upgrade 更新软件包并解决软件依赖关系

apt-cache search keyword 查找指定软件包信息

apt-cache show package_name 详细显示指定软件包的信息

apt-get install 安装指定软件包

apt-get remove 移除指定软件包

===================================
常用配置命令:

base-config 配置基本系统

apt-get install zhcon 安装 Zhcon 中文字符支持包.

zhcon 运行 Zhcon UC-DOS 中文系统

dpkg-reconfigure xserver-xfree86配置xfree86

apt-get remove netatalk 删除不必要的 Appletalk.

apt-get remove exim4 删除MTA.提高启动速度.

vi /etc/zhcon.conf 配置 Zhcon 设置

vi /etc/apt/source.list 配置 Apt 源址

2).网络设置:

设置IP文件: /etc/network/interfaces

-------------动态DHCP获得 -----------------

启动系统激活设备.

Loop回环地址.

auto lo
iface lo inet loopback

启动系统激活设备.

网卡eth0设置为DHCP类型.

auto eth0
iface eth0 inet dhcp

-------------静态Static获得---------------

启动系统激活设备.

Loop回环地址.

auto lo
iface lo inet loopback

启动系统激活设备.

网卡eth0设置为Static类型.

auto eth0
iface eth0 inet static

指定IP地址.子网掩码.广播.网关.

address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

==================================
设置DNS服务器: /etc/resolv.conf


search
#首选DNS服务器地址
nameserver ...
#备用DNS服务器地址
nameserver ...

===================================

用dpkg-reconfigure xserver-xfree86命令修改分辨率

vi /etc/X11/XF86Config-4

用apt-get安装了下列字体
ttf-arphic-bkai00mp :文鼎PL中楷(Big5 码)
ttf-arphic-bsmi00mp :文鼎PL细上海宋(Big5 码)
ttf-arphic-gbsn00lp :文鼎PL简报宋(GB 码)
ttf-arphic-gkai00mp :文鼎PL简中楷(GB 码)
unifont :包含了firefly点阵的, Unicode 的 pcf 字体。适用于 yudit 文本编辑器。
ttf-arphic-ukai :文鼎PL中楷Uni,AR PL KaitiM Big5 + AR PL KaitiM GB
ttf-arphic-uming :AR PL Mingti2L Big5 + AR PL SungtiL GB + firefly所建立的點陣字

再重启就OK了!

(三)Vi的必须掌握的基本操作:
1.进入编辑状态a,i,o,指令状态

2.向前和后移动ctrl+f ctrl+b

删除x,dd

3.到档案的最后一列 G

(四)压缩大全:
.tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)

.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知

.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

.tgz
解压:tar zxvf FileName.tgz
压缩:未知
.tar.tgz
解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName

.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName

.rar
解压:rar a FileName.rar
压缩:r ar e FileName.rar

rar请到:http://www.rarsoft/download.htm 下载!
解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp rar_static /usr/bin/rar

.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName

lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!

解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):
[root@www2 tmp]# cp lha /usr/bin/


.rpm
解包:rpm2cpio FileName.rpm | cpio -div

.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName

5)各种软件安装:

使用deb打包的软件安装

deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。
dpkg -l 查看安装的文件包

1. 安装
  # dpkg -i MYsoftware-1.2.-1.deb

2. 卸载
  # dpkg -e MYsoftware

dpkg -l package_name ( 列出该 package 相关信息 )
dpkg -l | less ( 列出系统中所有安装的软件 )
dpkg -L package_name ( 列出该 package 所有档案摆放位置 )
dpkg -S file_name ( 搜寻 file 所属 package )
dpkg -i package_name ( 软件安装 )
dpkg -r package_name ( 软件移除 )
dpkg -x package_name.deb target_dir ( 解 .deb 档案成数个档案 )
dpkg -i --force-overwrite-i package_name ( 强制安装软件 )
dpkg -i --force-all package_name ( 不顾一切的强制安装软件 )
dpkg -r --purge --force-deps package_name ( 强制移除软件 )
dpkg --get-selections ( 列出系统中所有安装的软件 )
dpkg --pending --remove ( 移除多余的软件 )

使用源代码进行软件安装

和RPM安装方式相比,使用源代码进行软件安装会复杂一些,但是用源代码安装软件是Linux下进行软件安装的重要手段,也是运行Linux的最主要的优势之一。使用源代码安装软件,能按照用户的需要选择定制的安装方式进行安装,而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外,仍然有一些软件程序只能从源代码处进行安装。

现在有很多地方都提供源代码包,到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件,如Sendmail,可以从商业网站处下载源代码软件包(如http://www.sendmail )。一般的软件包,可从开发者的Web站点下载。下面介绍一下安装步骤:

1.解压数据包
  源代码软件通常以.tar.gz做为扩展名,也有tar.Z、tar.bz2或.tgz为扩展名的。不同扩展名解压缩命令也不相同,见表1。

2.编译软件
  成功解压缩源代码文件后,进入解包的目录。在安装前阅读Readme文件和Install文件。尽管许多源代码文件包都使用基本相同的命令,但是有时在阅读这些文件时能发现一些重要的区别。例如,有些软件包含一个可以安装的安装脚本程序(.sh)。在安装前阅读这些说明文件,有助于安装成功和节约时间。

在安装软件以前要成为root用户。实现这一点通常有两种方式:在另一台终端以root用户登录,或者输入“su”,此时系统会提示输入root用户的密码。输入密码以后,就将一直拥有root用户的权限。如果已经是root用户,那就可以进行下一步。]

通常的安装方法是从安装包的目录执行以下命令:

gunzip soft1.tar.gz
  cd soft1
  #. /configure #配置#
  make #调用make#
  make install #安装源代码#

删除安装时产生的临时文件:
  #make clean

卸载软件:
  #make uninstall

有些软件包的源代码编译安装后可以用make uninstall命令卸载。如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,应该在编译前进行配置。

.bin文件安装

扩展名为.bin文件是二进制的,它也是源程序经编译后得到的机器语言。有一些软件可以发布为以.bin为后缀的安装包,例如,流媒体播放器 RealONE。如果安装过RealONE的Windows版的话,那么安装RealONE for Linux版本(文件名:r1p1_linux22_libc6_i386_a1.bin)就非常简单了:
  #chmod +x r1p1_linux22_libc6_i386_a1.bin
  ./ r1p1_linux22_libc6_i386_a1.bin

接下来选择安装方式,有普通安装和高级安装两种。如果不想改动安装目录,就可选择普通安装,整个安装过程几乎和在Windwos下一样。

.bin文件的卸载,以RealONE for Linux为例,如果采用普通安装方式的话,在用户主目录下会有Real和Realplayer9两个文件夹,把它们删除即可。

RPM格式软件包的安装

1.简介
  几乎所有的Linux发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比,软件包管理易于安装和卸载;易于更新已安装的软件包;易于保护配置文件;易于跟踪已安装文件。

RPM全称是Red Hat Package Manager(Red Hat包管理器)。RPM本质上就是一个包,包含可以立即在特定机器体系结构上安装和运行的Linux软件。RPM示意图见图1。

大多数Linux RPM软件包的命名有一定的规律,它遵循名称-版本-修正版-类型-MYsoftware-1.2 -1.i386.rpm 。

2.安装RPM包软件
  # rpm -ivh MYsoftware-1.2 -1.i386.rpm

RPM命令主要参数:

-i 安装软件。
  -t 测试安装,不是真的安装。
  -p 显示安装进度。
  -f 忽略任何错误。
  -U 升级安装。
  -v 检测套件是否正确安装。

这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。

3.卸载软件
  # rpm -e 软件名

需要说明的是,上面代码中使用的是软件名,而不是软件包名。例如,要卸载software-1.2.-1.i386.rpm这个包时,应执行:
  #rpm -e software

4.强行卸载RPM包
  有时除去一个RPM是不行的,尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息:

## rpm -e xsnow
  error: removing these packages would break dependencies:
  /usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1

在这种情况下,可以用–force选项重新安装xsnow:

## rpm -ivh --force xsnow-1.41-1.i386.rpm
  xsnow

这里推荐使用工具软件Kleandisk,用它可以安全彻底清理掉不再使用的RPM包。

5.安装.src.rpm类型的文件
  目前RPM有两种模式,一种是已经过编码的(i386.rpm),一种是未经编码的(src.rpm)。
  rpm --rebuild Filename.src.rpm

这时系统会建立一个文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目录下,一般是i386,具体情况和Linux发行版本有关。然后 执行下面代码即可:
  rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm

Linux绿色软件

Linux也有一些绿色软件,不过不是很多。Linux系统提供一种机制:自动响应软件运行进程的要求,为它设定好可以马上运行的环境。这种机制可以是一种接口,或者是中间件。程序员编写的程序可以直接拷贝分发,不用安装,只要点击程序的图标,访问操作系统提供的接口,设定好就可以工作。若要删除软件,直接删除就可以,不用链接文件。这是最简单的软件安装、卸载方式。

上面介绍了Linux软件安装的方法,对于Linux初学者来说,RPM安装是一个不错的选择。如果想真正掌握Linux系统,源代码安装仍然是Linux下软件安装的重要手段。

(五)系统启动脚本说明:
1.There are two styles for the booting scripts, they are BSD and SysV init.

Slackware 使用BSD风格的init脚本,而很多别的发行版使用System V风格的init脚本。SysV和BSD脚本都是能让人读懂的,即它们都是shell脚本,而不是已编译的程序。主要的区别在于脚本是如何设计的。

SysV脚本倾向于接受诸如start、stop、restart之类的参数,依它所启动的程序而定。所以你可以用 /etc/init.d/bind start 这样的命令来启动BIND,并用 /etc/init.d/bind stop 来停止BIND。

SysV的启动还倾向于使用符号链接来组织启动进程,例如在 /etc/rc.d/rc.4/中,可能会有指向别的目录中的真正的脚本的各种各样的符号链接。这些链接的命令会像是 S10network、S25xdm之类,其中的S表示启动(start)该项服务(如果是K,则表示kill),而数字指定了脚本执行的顺序。

SysV风格的启动脚本的主要优点在于能够设置成自动配置许多东西。例如,若你进入runlevel 6,你可以建立一个链接叫K75bind来终止BIND,前提是链接所指向的文件已经设置好来做这件事。

SysV风格脚本的主要缺点是太过弯弯绕。假如我想增加一个服务,我要先写一个SysV风格的脚本(不是容易的事),它至少要处理“start” (还可能有“stop”)。然后,我必须确保在每个要运行这个服务的runlevel中正确地设置好符号链接。如果恰好这个服务需要在已经连续编号的两个脚本之间运行,我就需要做一些对符号链接重新编号的工作(例如,S10xxx和S11yyy已经存在,而我想让zzzz在它们之间运行,我就需要对前两者之一重新建立符号链接来把zzzz挤进去)。

想暂时改变SysV的启动进程也是非常痛苦的事情。假如我不想在下次启动时运行xxx服务,最简单的办法是删除S10xxx这个链接,不算难吧?但如果我想在每个runlevel中都去掉它,我就需要从每个有关目录中删除S10xxx这个链接。然后,假如我改了主意,想重新运行xxx,我需要手工重新建立所有的符号链接。

这样子无疑是在已经很复杂的启动进程上叠床架屋,而Slackware是不会这么做的:它用BSD风格的启动脚本。

BSD风格的脚本是直接了当的shell脚本,它们倾向于顺序运行,而不需要start或stop之类参数。只要系统进入了它们的runlevel就会执行,就这么简单。

BSD风格的主要缺点是你需要一些其他方法来控制后台服务。例如,若我要停止BIND,我要先用命令 ps ax|grep named 找出 named的PID,然后kill这个PID(或者用这个pid的文件名)。但是我不能简单地下个命令 /etc/init.d/bind stop (除非我已经写了个这样的SysV脚本)。

BSD风格脚本的主要优点是它们非常容易阅读和编辑。例如,若我想增加一个服务zzzz,我可以在 /etc/rd.d/rc.local中增加一行 /usr/local/bin/zzzz,这样只要是执行rc.local的runlevel,zzzz就会随之运行。假如我只想在runlevel 4执行zzzz,我可以把它放在 /etc/rc.d/rc.4 (不是目录,而是一个脚本)中。如果我要改变执行顺序,我只要把zzzz放在适当的服务之间,多数编辑器都支持在文件中间插入文本(就算ed都支持)。还有,你可以用注释的方式停止一个服务,然后去掉注释让它重新运行。

因此,当多数发行版采用SysV风格时,Slackware采用了BSD风格。对于许多Slackware用户,BSD风格的易用性胜过SysV风格的强大功能。当然,你可以有自己的意见。

与普遍的观点相反,从一种风格转到另一种并不那么困难,只要把inittab和rc文件从一个系统拷贝到另一个系统即可。init程序自身没有改变,所谓“风格”多是在inittab和它所调用的脚本中设置的。

译注:现在slackware为了提高兼容性,在/etc/rc.d/提供了rc.sysvinit脚本以适应某些基于SysV启动过程的商业程序的需要。另外,在许多设置服务的脚本中,也接受start、stop、restart这一类参数,例如rc.sendmail、rc.sshd等。

2.a sample:

1).In /etc/initab ,we found it the runlevel is set to 2.so it will use rc2.d directory for SysV init.

2).create a file named apache.sh. vi /etc/init.d/apache.sh:
#! /bin/sh

echo “Starting Apache Web Server: httpd.”
/usr/apache2/bin/apachectl start

3).chmod +x apache.sh

4).change to /etc/rc2.d/
ln -s …/init.d/apache.sh S96apache

5)ments:
顺便解释一下 S96apache 的意思,以 S 开头表明是开机时会执行的文件,96 是执行的优先顺序。
目录中 S 开头的档案为执行该服务, K 为开头的档案则是杀掉该服务的意思。那么那些数字代表的意义为何?那就是激活的顺序啦!例如S12syslog 会比S90crond 更早被执行呢!

(六)小结
Linux服务器平台的搭建就说到这里,其他常用的命令请查阅帮助手册。

更多推荐

debian上安装python3.5