1.前言
首先要说的是tar.gz不是软件包格式,而是压缩档格式,你可以把任何格式的东西压缩成tar.gz文件,就像.7z , .zip和.rar一样。
你下载的tar.gz包装的软件很可能是源码,但也有的地方把二进制码打包成tar.gz的,而deb包里包装的是二进制码和少量配置文件。把源码转换到deb文件的过程需要编译软件并制作配置文件,比较麻烦。
对于常见的软件,已经有人打包好了,都可以从软件源安装,没有必要从源码安装。如果你下载的软件是源码,那么解开之后会有一个README或者INSTALL文件,安装步骤应该就写在里面。
2.修改软件源
源码包的获取源默认都是关闭的,需要手动将其开启
sudo vim /etc/apt/sources.list
将#deb-src改为deb-src保存退出后需要刷新软件源列表
sudo apt-get update
3.获取源码包
深度操作系统使用的所有软件的源代码都可以轻松获取。
例如获取deepin-music-player 源代码,只需要终端执行:
sudo apt-get source deepin-music-player
4.编译安装
源代码包的安装一般为下载软件源代码,然后编译安装. 常见的C程序软件的安装步骤是 configure, make, make install三部曲,大致是下面这样操作:
首先得安装gcc、make等软件
sudo apt-get update && sudo apt-get install build-essential
解压缩你下载的tar.gz包,得到一个文件夹。
tar -zvxf ***.tar.gz
在命令行下,cd进这个文件夹
cd xxx ##xxx为需要进入的文件夹
配置文件,终端执行:
./configure ##配置
configure的时候如果报错,一般会提示你少了一些什么依赖关系, 你到新立得里找找装上就行。
安装新立得可以用
sudo apt-get update && sudo apt-get install synaptic
开始编译。终端执行:
make ##编译
安装生成的二进制文件,软件如果软件较大,可能会比较久。
sudo make install ##安装软件
注意:具体安装方法以软件源代码中的README等帮助文件为准。
5.删除
方法一 在源代码包目录上,终端执行:
make uninstal
方法二
直接删除源代码程序文件
说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。
由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净, 那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure --prefix=目录名,这样可以使用rm -rf 软件目录名 命令来进行干净彻底的卸载。
与其它安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者使用。
6.常见问题
为什么不把软件全部转换成deb包,点击安装多方便啊!
程序源码是不依赖软件和硬件平台的,所以写程序的人一般只维护源代码。一个好的程序可以在各种操作系统上运行。 而deb包这类的二进制包是依赖硬件和软件平台的。 比如说给深度操作系统用的deb包就是x86的ubuntu下才能用,其他系统不行。
同时源码发行的话也同时给了用户自己很高的权限,他可以制作一个自己的二进制包,比如使用dpkg来制作,详情请见dpkg的帮助手册。
man dpkg
从软件上来说debian和ubuntu上有.deb包,而且debian和ubuntu的还不完全一样,suse和fedora的rpm也不完全一样,然后slackware、archlinux都有自己的二进制包打包方式和对应的包管理器,比如debian的dpkg和centos的rpm等,刚才所使用的apt-get也只是dpkg的一个前端而已。类似的还有yum、dnf、apt(可以简单理解为apt-get的升级版)、aptitude等。
每个发行版的deb包可能不一样。所以同一个软件编译出来的二进制包是很多的,软件维护者一般不维护这些二进制码包,顶多维护一两个。还有自己编译软件好处是,可以编译出最适合自己电脑软件配置,这样软件性能更好,也是很多人编译内核的原因!
1.命令ntpdate 37.187.100.18(最好是root账户)
2.如果没有安装ntp,需要先安装 yum install -y ntpdate
3.方式一、使用域名连接,要经过DNS解析,速度慢:
4.ntpdate pool.ntp.org
5.使用IP连接,超级快:
6.ntpdate 120.24.81.91
7.如何获取域名的ip
http://www.pool.ntp.org是NTP的官方网站,在这上面我们可以找到离我们国家的NTP Server cn.pool.ntp.org。
它有3个服务器地址:
服务器一: 1.cn.pool.ntp.org
服务器二: 2.asia.pool.ntp.org
服务器三: 3.asia.pool.ntp.org
(直接用域名有时有问题,可以先Ping出他们的IP,然后用IP地址同步)
8.ping出ip ping cn.pool.ntp.org
9.得到ip后,用 ntpdate 37.187.100.18 同步时间
10.执行该命令,有时会提示:the NTP socket is in use, exiting.该提示的意思是 NTP 已经被占用。
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。
GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。
GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由。
如果没有gcc环境执行如下命令安装GCC:
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz
1.deepin不能直接使用rpm包,rpm包是给centos使用的,deepin使用的是deb包。
2.yum是一个在Fedora、RedHat、CentOS中的Shell前端软件包管理器。也就是说deepin不能使用yum命令,需要安装。
3.几点体会:
1)deepin系统的底层是debian系统;
2)debian系统安装软件,可以通过命令apt-get install 从软件源安装;
3)debian系统可以使用封装好的deb包安装,这种包就想windows的exe包,可以点击安装;再次点击提示已安装,或者卸载。
4)debian系统不能使用rpm包,rpm包是给centos用的,rpm包也类似于windows的exe包;
5)debian系统不能使用yum命令,需要安装;
6)debian系统中安装软件,如果软件A依赖软件B,则软件A和B的安装方式要保持一致。要么都是软件源,要么都是deb包。
7)安装软件还是建议使用源码安装,这样在一种linux系统上会了,其他的linux系统也会。
1.deepin的查看软件命令
dpkg --list
2.deepin的安装命令
sudo apt-get install erlang
sudo apt-get install rabbitmq-server
是从 软件源 下载并安装。如果软件源没有想要的程序则无法通过apt-get install命令安装,而且 软件源头 有那个版本的程序就会安装那个版本,不能选择。
3.deepin的卸载命令
sudo apt-get --purge remove erlang
sudo apt-get --purge remove rabbitmq-server
4.deepin移除下载的安装包(慎用该命令)
sudo apt autoremove
通过apt -get install 安装的程序需要3和4两个命令来删除,缺一不可。
5.deepin删除没有安装成功的软件的命令
sudo apt --fix-broken install
6.deepin安装deb包的命令
dpkg -i ×.deb
1.ps -ef | grep java
ps -ef | grep nginx
这些命令是用来查看进程的,对应的可以使用kill杀死进程
2…/startup.sh ./shutdown.sh都是文件, ./表示执行
3.passwd 修改密码的命令 需要输入两遍
4.tail -f catalina.out 实时读取catalina.out文件
tail -n 200 catalina.out 读取catalina.out文件的后200行
ls -l 以列表的方式读取目录下的文档
ls -a 读取目录下的所有文档,包括隐藏文档(.开头)
grep ‘你好’ catalina.out 在catalina.out文档中查询“你好”
grep -20 ‘你好’ catalina.out 查询“你好”上下20行
grep -20 ‘你好’ catalina.out | sort -r 查询“你好”倒序显示
cat filename | tail -n +3000 | head -n 1000 从第3000行开始,显示1000行。即显示3000~3999行。
cat filename| head -n 3000 | tail -n +1000 显示1000行到3000行。
5.chmod +x *.sh 给当前目录下所有.sh文件执行权限
chmod u+x *.sh 也是给当前目录下所有.sh文件执行权限
chmod -R 777 /home 给home目录及子目录读写权限
没有权限提示类似于“Permission denied”
chown -R developer 目录 将目录的读写权限给developer用户
6.查看tomcat版本,bin目录下执行 ./version.sh 命令
7.date命令查看系统的日期时间
date -s 06/18/14 设置日期为2014年6月18日
date -s 14:20:50 设置时间为14点20分50秒
date 0618141620.30 格式为 MMDDhhmmYY.ss,设置日期时间为2020年6月18日14点16分30秒
8.mkdir /data/test 创建data/test目录
9.cp -rf /data/test/* /data/zs
将/data/test下的全部内容拷贝到/data/zs中
10.mv /data/test /data/zs
将/data/test移动到/data/zs,可以实现复制、重命名
11.rm -rf /data/zs 删除/data/zs
12.service iptables status 可查看防火墙的状态
0:关闭 1:关闭2:启用3:启用 4:启用 5:启用 6:关闭
13.reboot重启linux系统
14.scp -P 22000 -r [email protected]:/opt/apache2/ /opt/
将192.168.95.61服务器上/opt/apache2(包含apache2文件件) 拷贝到 当前服务器opt目录下 (要是全路径)
22000是92.168.95.61服务器的端口号,如果是22可以省略
15.tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
16.ping ip地址 查看是否能连接到某台服务器
17.查看linux系统是否安装了yum
rpm -qa | grep yum 如果安装了就会看到响应的安装包
或者直接输入 yum 命令,如果安装了就会弹出yum参数
18.退出vim
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
19.查看电脑及操作系统的信息
uname -a 或者 cat /etc/issue
20.查看gcc版本 gcc --version
21.make 编译
make install 安装命令
yum install 从centos软件库中安装,如安装unzip命令
yum install -y unzip zip
22.whoami 查看当前登录的账户
adduser developer 新建用户developer,会创建用户,创建目录,创建密码,做这一系列的操作。
useradd developer 只创建用户。
passwd developer 创建用户后,用它设置developer的密码。
userdel developer 删除用户。
23.查看linux系统是几位的 getconf LONG_BIT
24.java -version 查看java版本
source ~/.bashrc 使~/.bashrc修改的内容生效,重启也生效
25.查看文件大小
df -h 查看系统各个分区的情况
du -sh /data 查看data文件的大小
du -h /data 查看data文件下所有子文件几子文件大小
du -sh ./* 查看当前目录下所有文件的大小
du -sh ./* | sort -nr 查看当前目录有文件大小,从大到小排序
du -sh ./* | sort -nr | head 从大到小排序,前10个
du -sh ./* | sort -nr | tail 从大到小排序,后10个
在linux服务器上发现一个错误:too many open files
这是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。
引起的原因就是进程在某个时刻打开了超过系统限制的文件数量以及通讯链接数。
通过命令ulimit -a或者ulimit -n可以查看当前系统设置的最大句柄数是多少。
ulimit -n:显示当前设置的限制数量是1024(默认值)。
解决方法有两种:
1.命令修改
sudo ulimit -n 102400
这是修改最大限制数是102400,但是重启系统后会失效。
2.配置文档修改
sudo vim /etc/security/limits.conf
在文档最后加入:
在使用vsCode开发vue时,经常会遇到如下错误:
Error from chokidar (…): Error: ENOSPC: System limit for number of file watchers reached, watch ‘…’
查看发现,该错误是:超出了系统监控文件上限。
可以修改系统监控文件上限,有两种方式:
1.命令修改,重启系统会失效
sudo sysctl -a | grep fs.inotify.max_user_watches
该命令用于查看上限数量
sudo sysctl -w fs/inotify/max_user_watches=524288
该命令用于修改上限数量为:524288
2.配置文档修改
sudo vim /etc/sysctl.conf
在文档的末尾增加:
fs.inotify.max_user_watches = 524288
运行使配置生效,或者重启系统
sudo /sbin/sysctl -p