美文网首页
专业技能:熟练安装各种软件???

专业技能:熟练安装各种软件???

作者: 小艾咪 | 来源:发表于2021-04-04 13:19 被阅读0次

Redis暴露到公网被人黑了。。。。多了一堆下载shell脚本的键值。看cron表达式全是半夜执行,然而脚本也看不懂索性重装了下服务器系统

正好记录下部分软件的安装流程,省的每次安装都要差文档QAQ

缺少.bashrc

这个只在腾讯云下遇见了,家目录下没有.bashrc文件,导致ls等系统命令缺少颜色显示不方便。直接手动创建.bashrc文件。添加

alias ls='ls --color'

当然如果不限麻烦可以直接在shell中执行ls --color.同时这个用户新加入的环境变量也可以添加到这里,避免污染profile文件。

此时如果还有一些文件(例如.gz文件)还没有颜色,找一台没问题的机器执行echo $LS_COLORS查看该变量的值。然后将该值添加到你的环境变量中,当然建议直接在.bashrc中操作。因为多数情况下root用户的这个变量应该是没问题的。这里就说明如果你可以进入root进入root获取该变量的值也是可以的。

export LS_COLORS=你查询到的值

我这里贴出一个阿里云Centos镜像的$LS_COLORS值供参考

'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:'
# 引号要有

此时当前登录用户将正常显示,但推出登录再重新登录服务器配置可能又会失效,此时将如下代码加入到/etc/profile再source /etc/profile即可。

if [ -n "$BASH_VERSION" ]; then
  # include .bashrc if it exists
  if [ -f "$HOME/.bashrc" ]; then
     . "$HOME/.bashrc"
  fi
fi

Nginx

下载

到官网下载nginx然后上传到服务器或者右键复制官网的下载链接在shell中执行 wget 下载链接我这里下载的1.18.0wget https://nginx.org/download/nginx-1.18.0.tar.gz

安装编译环境

如果没有c++编译环境需要下载c编译环境,推荐使用build-essential

sudo apt install build-essential

安装

生成Makefiel

首先使用configure生成Makefile。执行./configure过程中会告诉你你缺少的依赖。例如我缺少的第一个依赖时PCRE报错信息如下

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

从该断内容中可以获得很多信息,如你既可以安装pcre又可以自己编译pcre并在配置nginx时指定pcre路径。当然使用包管理工具安装最为简单。

安装pcre

# 这里ubuntu一般会内置libpcre3所以只安装libpcre3-dev即可,如果没有libpcre3按同样的方法安装即可
sudo apt install libpcre3-dev

# Centos的依赖名称不是libpcre3-dev 而是pcre-devel,根据系统发行版自行选择
sudo yum install pcre-devel # Centos

安装zlib

# ubuntu
sudo apt install zlib1g-dev
#Centos
sudo yum install zlib-devel

此时./configure已经可以运行通过但查看控制台

Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

如果你不需要https服务可以忽略OpenSSL library is not used这条提示,如果需要使用https服务则再配置时需指定使用https模块./configure --with-http_ssl_module当然如果没有openssl依赖也需要安装openssl

编译并安装

# make install 需要root权限
make && make install

安装完成后可能无法再任意位置启动nginx,查看make install 日志可以发现bin文件被放在了/usr/local/nginx/sbin下了所以执行/usr/local/nginx/sbin/nginx

最好不要试图将其添加到环境变量中(除非你真理理解为什么这么做),因为即使可以在任意位置访问普通用户也缺少部分权限无法开启,而使用sudo nginx会发现command not found。即使使用chmod将相应权限赋予给普通用户,普通用户在执行时也会在开启监听端口时失败(配置文件为默认时)因为linux普通用户没有使用1000一下端口的权限。当然如果你使用1000以上端口可通过如下配置使普通用户可在任意位置执行nginx命令

将nginx bin目录追加到PATH下

# .bashrc 文件
export PATH=$PATH:/usr/local/nginx/sbin

更改权限

# 将nginx 加入你的用户组
sudo chgrp -R user /usr/local/nginx/
# 更改当前用户组对nginx文件夹的操作权限
sudo chmod -R g+rw /usr/local/nginx/

如果使用80或其他1000以下端口在任意位置执行nginx命令按如下配置

# .bashrc 文件
alias nginx='sudo /usr/local/nginx/sbin/nginx'
#即 给nginx 取个别名,别名就是以sudo 方式启动

修改完.bashrc文件记得source

!!!!

当然最简单的方法时使用 apt/yum QAQ

RabbitMQ

安装Erlang

# 直接安装,缺少依赖会报错。
sudo dpkg -i esl-erlang_23.2.3-1_ubuntu_bionic_amd64.deb
# 安装上面缺少的依赖
sudo apt --fix-broken install
# 重新执行
sudo dpkg -i esl-erlang_23.2.3-1_ubuntu_bionic_amd64.deb

安装RabbitMQ

# RabbitMQ依赖于socat,先安装socat
apt install socat
# 安装RabbitMQ
sudo dpkg -i rabbitmq-server_3.8.14-1_all.deb

# 开启web管理界面
rabbitmq-plugins enable rabbitmq_management
# 创建一个用于登录的用户
rabbitmqctl add_user user password
# 给该用户赋予管理员权限,权限操作粒度可以更细,详见官方文档
sudo rabbitmqctl set_user_tags alming administrator

Redis

安装编译环境

sudo apt install build-essential

下载

到官网下载安装文件redis-6.2.1.tar.gz

安装

# 解压文件 
sudo tar -xf redis-6.2.1.tar.gz
# 安装
cd redis-6.2.1  
make && make install

设置远程连接

该功能能不开启就不开启。

需要执行两步操作:

关闭保护模式;取消绑定ip

vim redis.conf
?protect-mode找到该配置将yes该为no
protected-mode no
?bind-address找到该配置将该配置注释,如果在内网中最好指定你需要访问该redis服务的主机ip地址
#bind 127.0.0.1 -::1

如果暴露到公网上了建议指定一个复杂一点的密码,设置密码方式

vim redis.conf
?requirepass 找到该配置将注释取消并设置一个复杂的密码

可能遇到的问题

  • 找不到<stdlib.h>``<string.h>等头文件

    缺少编译环境

    解决思路

    安装编译环境

  • 找不到<jemalloc/jemalloc.h>缺少这个内存分配器,

    本次安装并没有遇到过这个问题,以前遇到过。

    解决思路

    解决方案见下一条错误

  • cc: error: ../deps/hiredis/libhiredis.a: No such file or directory
    cc: error: ../deps/lua/src/liblua.a: No such file or directory
    cc: error: ../deps/jemalloc/lib/libjemalloc.a: No such file or directory
    

    如果你看到了上一条错误可能会去安装jemalloc(自己去github找jemalloc拉下来安装)此时就会出现上边的错误。不要这样安装,去解压目录下的deps下安装。

    解决思路

    cd 到解压目录下 deps文件夹此时看到该文件夹下有一个Makefile。猜测是编译该文件下所有内容的。执行下输出Explicit target required

    所以推断该Makefile是单独编译该文件下内容同时指定文件夹名的。所以查看上面缺少什么就编译什么

    # 编译jemalloc
    make jemalloc 
    # 编译lua
    make lua
    # 编译hiredis
    make hiredis
    # 编译 hdr_histogram
    make hdr_histogram
    # 注意,这几部操作仅在解压目录下deps目录下有意义。
    

解决完以上问题再编译Redis应该就没问题了。

!!!!

上面可能出现的问题大概率不会出现,安装build-essential一般不会出现问题。碰到这些问题的起因就是当我安装看到<stdlib.h>``<string.h>找不到时首先就想到了缺少c++编译器的支持所以马上就安装了g++,此时方向就已经错了。另外,deps下的内容最好使用外面的Makefiel进行编译。虽然进入相应文件夹手动编译有些也可以成功,但会缺少一些必要编译参数。例如使用手动编译的jemalloc再编译redis时可能提示你一些函数找不到,则此时编译redis就需要指定处理器架构即make CFLAGS="-march=x86-64",

zookeeper

详见Zookeeper学习笔记

Docker

详见Docker Hello World

这个是Centos系统的但是大致思路都一样

Docker Compose

文章待发布

Mysql

详见关于ubuntu18.04MySQL安装即初始化过程中的一些问题

Golang

下载

到官网下载linux版文件并上传到服务器中。将其解压到/usr/local/目录(任意目录,配置环境变量时能够找到即可)下

将以下环境变量配置添加到.bashrc文件中(即文章开头的那个)

export GOROOT=/usr/local/go
export GOPATH=$GOROOT/GOPATH
export PATH=$PATH:/usr/local/go/bin

执行go version查看是否安装成功。出现版本信息表示安装成功

go version go1.16.3 linux/amd64

相关文章

  • 志愿北京我乐期间目标

    1,学习安装橱柜台面 2,把橱柜安装熟练 3,蚁安居学院学习各种衣厨门安装

  • 专业技能-测试

    关键词:专业技能 一、熟练掌握软件测试基础理论、测试流程、测试策略、测试类型、测试方法及测试模型 二、熟悉计算机网...

  • 安卓简历技能点--杂谈(一)

    专业技能点: - 熟练掌握java语言及面向对象的思想。 - 熟练掌握java语言的多线程技术。 - 熟练掌握ja...

  • 给IT猎头的一份实习求职信

    本人计算机科学与技术专业大二,在国内211大学就读。 专业技能 熟练使用C++,git,GitHub 熟悉各种基本...

  • 2019-03-03

    学习目标 能够熟练掌握广告设计中所使用到的矢量图、位图编辑软件的综合应用,能够熟练应用平面设计类软件,掌握各种图像...

  • 想做unity3d游戏开发,该如何规划学习?

    现在23岁,想进游戏行业但是什么专业技能都没有,从头学起需要几年时间来熟练操作编程软件,如Unity 3D? 我现...

  • 大数据经典学习路线(及供参考)之 一

    1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,...

  • 大数据的入门级学习(全套)

    1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,...

  • 大数据的入门级学习

    1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,...

  • 大数据基础学习路线(供参考)

    1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,...

网友评论

      本文标题:专业技能:熟练安装各种软件???

      本文链接:https://www.haomeiwen.com/subject/igrdkltx.html