【笔记】linux下各种软件安装方法(持续记录)

1.安装jdk

首先进入usr文件夹,新建java文件夹:

1
mkdir java

直接通过wget命令下载压缩包(如果找不到wget工具,可以通过apt-get install wget安装此工具):

1
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

后面url需要按照自己需要调整。

进入所在文件夹(这里指java文件夹)解压:

1
tar -zxvf jdk-8u141-linux-x64.tar.gz

解压好了如下:

1
2
root@xxx-xxx-xxx-01:/usr/java # ls -a
. .. jdk1.8.0_141 jdk-8u141-linux-x64.tar.gz

接着配置环境变量,输入指令:

1
vim /etc/profile

然后编辑:

1
2
3
4
export JAVA_HOME=/usr/java/jdk1.8.0_141 
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

然后让其生效:

1
source /etc/profile

最后进行测试看看是否生效了:

1
2
3
4
root@xxx-xxx1-xxx-01:~# java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)

出现版本号,视为安装配置成功。

2.安装Perl

1
2
3
4
5
6
7
wget http://www.cpan.org/src/5.0/perl-5.26.1.tar.gz
tar zxvf perl-5.26.1.tar.gz
cd perl-5.26.1
./Configure -de
make
make test
make install

wget后面的路径可以按需更改。安装过程比较耗时间,安装完成后可通过perl -version查看是否安装成功。

3.tcpdump抓包工具

1
2
apt-get update
apt-get install tcpdump

抓包工具tcpdump可以抓到容器内的网络请求,具体用法如下:

1
tcpdump -i any -A -n port 80 | grep -C 50 'path'

上面是抓取端口为80的网络交互,且过滤出包含path关键词的交互,展示50行

比如你想抓取http请求,知道http请求端口是80,还知道http请求具体的path,那么就可以抓取一个接口的请求信息(包含请求报文、响应报文),redis等同理,知道端口,知道关键词,就可以抓到交互。

4.C++编译器

1
apt-get install g++

一般用于编译c++程序,缺少这个编译器进行make编译c++代码时,会报g++: not found的错误。

5.zookeeper的安装&启动

先下载zookeeper的安装包,然后解压:

1
tar -zxvf zookeeper-3.4.6.tar.gz

解压后进入该包路径,然后进入conf目录修改zoo_sample.cfg的名字为zoo.cfg

1
mv zoo_sample.cfg zoo.cfg

然后打开该文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

重要解释:

tickTime:这个时间是作为 Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime时间就会发送一个心跳。
dataDir:顾名思义就是Zookeeper保存数据的目录,默认情况下,Zookeeper的日志文件是在bin目录下,有一个zookeeper.out文件。
clientPort:这个端口就是客户端连接 Zookeeper服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求。伪集群模式下,这个端口需要配置成不同的。如果是多台虚拟机或者服务器下,则无需更改。

接下来,我们来标记下该zk节点的id(节点号),在dataDir显示的路径下新建myid文件,写上一个数字(1~255间),这里写的是1:

1
2
3
vim myid
1
:wq

然后继续回到conf目录下,编辑zoo.cfg,在下面添加如下配置:

1
server.1=xx.xx.xxx.xx:8881:7771
  1. 前面的server.1里的1就是之前在myid里写的id号,zk节点唯一标识,后面的xx.xx.xxx.xx标识本机ip;
  2. 再往后的8881表示的是这个服务器与集群中的Leader服务器交换信息的端口(自定义);
  3. 再后面的7771表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

接下来返回到zk的bin目录,进行启动这个zk服务:

1
./zkServer.sh start

看到下面的打印说明启动成功:

1
2
3
JMX enabled by default
Using config: /usr/zk/zookeeper-3.4.6/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

集群搭建比较简单,直接改下配置,把zoo.cfg下面的ip+port往下面加节点就行了,例子:

1
2
3
server.x=yyy.yy.yyy.yy:8881:7771
server.x=yyy.yy.yyy.yy:8881:7771
server.x=yyy.yy.yyy.yy:8881:7771

注意,集群里的每一个节点都要加上上面的配置,上面配置里的x就是指之前单机的myid文件放的id号,需要注意的是集群模式下,这些id是不允许有重复的,后面的yy.yy指的是节点ip地址,再往后的8881和7771之前有解释过,上翻查看。 这样配置后,将所有节点重启一遍即可,期间会进行Leader的选举,完成后可以运行bin目录下的zkServer.sh status查看其身份。