day 21


Day 21 笔记

1.昨日回顾

解决关于yum缓存报的理解(自己搭建yum仓库)

1.你要准备一个初始化安装的机器,因为它的确缺少很多工具包

yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel net-tools vim -y

办法1,挂载本地光盘作为yum仓库(没有光驱,没法用光盘)
办法2,自己提前准备好所需的rpm包,通过usb 接口,把rpm包考过去,安装

2.还要关注你用的yum源是谁,我这个机器用的是centos官方的,你可以更换为阿里云的



3.linux仅下载rpm包,而不安装
yum install --downloaddir=/opt/base_rpm/ --downloadonly gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel net-tools vim -y

4.检查下载好的本地rpm包
[root@client-242 opt]# ls base_rpm/ |wc -l
90


5.此时该如何批量安装这些rpm包呢?
该如何用如下这个命令,安装上述我下载好的rpm包,在一个离线的环境

yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel net-tools vim -y

办法是?
自建yum仓库文件夹

6.你得准备好这些rpm包,存放于一个目录
ls /opt/base_rpm

7.使用createrepo命令,将这个目录,改造为yum可识别的一个仓库目录,它会生成repodata文件夹

createrepo /opt/base_rpm

8.创建本地yum仓库文件,去找这些rpm包了,找本地的yum仓库文件夹
[root@client-242 yum.repos.d]# cat local_dir.repo 
[local_dir]
name=local dir base rpm
baseurl=file:///opt/base_rpm
enabled=1
gpgcheck=0


9.注意清空yum缓存(因为,系统中现有的,是centos7官方的一些rpm包缓存数据)
yum clean all

[root@client-242 yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: local_dir
Cleaning up everything


Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@client-242 yum.repos.d]# 
[root@client-242 yum.repos.d]# 
[root@client-242 yum.repos.d]# rm -rf /var/cache/yum

这里的缓存分为两种
一个是内存缓存,是通过yum clean all
一个是持久化存储的缓存,以及写入到磁盘了 rm -rf /var/cache/yum


10.才是一个干净的机器,可以去装软件


11.总结
等于自定义了一堆rpm包,给了一个断网的机器,且没有用光盘的机器,安装了这些工具包

yum安装本地文件夹的rpm包参数

用法
yum localinstall  xx.rpm

如何检查 rpm 软件依赖

方法一:
[root@makabaka yum.repos.d]# rpm  -qR nginx

方法二:
[root@makabaka yum.repos.d]# yum install  rpmreaper
[root@makabaka yum.repos.d]# rpmreaper      #可以用  / 搜索软件名   R查看软件依赖关系

------------------------------ 以上两种方法只能查看已安装的依赖 --------------------------------------

方法三:
[root@makabaka yum.repos.d]# repoquery  --requires  --resolve nginx

配置阿里云yum源以及epel源,仅仅且保留nginx的rpm包缓存到/opt/nginx_rpm

[root@client-242 ~]# yumdownloader --destdir=/opt/nginx_rpm nginx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
[root@client-242 ~]# 
[root@client-242 ~]# ls /opt/nginx_rpm/
nginx-1.20.1-9.el7.x86_64.rpm

2.Ubuntu简单学习

软件包安装(docker搭建游戏)

能够看得懂报错信息,尝试去翻译还是去分析,找到关键字,找到解决问题的办法。用时间累计,多敲,多见识,多学,大能获得的经验

  • 作为运维工程师,搞懂linux的软件安装是第一步,面对各种软件部署,心中要有一百个方案,轻松拿下

    • 前提自己没经验,不知道怎么解决,就学,吧别人的经验,学过来,转化转化就是你的经验了
    • 心中没有方案,去google搜索,找出的答案,就是你的经验
  • 随着运维技能的提升,会想尽办法,让自己更懒,更省事, 恨不得,一天就干完一个月的活

    • 为什么需要进行运维自动化
  • 部署程序运行环境,迁移环境,是个麻烦,docker让这件事变得更简单

#安装 docker 
yum install docker -y
[root@makabaka ~]# yum install docker -y
#启动 docker
[root@makabaka ~]# systemctl   start  docker
[root@makabaka ~]# docker -v
Docker version 1.13.1, build 7d71120/1.13.1
[root@makabaka ~]# 

#把游戏镜像发送到Linux
[root@makabaka ~]# ls
anaconda-ks.cfg  chaoge.txt  dev.zip  game_v2.tar  passwd.txt

#导入游戏镜像
[root@makabaka ~]# docker  load < game_v2.tar   
764055ebc9a7: Loading layer 72.53 MB/72.53 MB
ace9ed9bcfaf: Loading layer 64.86 MB/64.86 MB
48b4a40de359: Loading layer 3.072 kB/3.072 kB
c553c6ba5f13: Loading layer 4.096 kB/4.096 kB
d97733c0a3b6: Loading layer 3.584 kB/3.584 kB
9d1af766c818: Loading layer 7.168 kB/7.168 kB
9fd760f25a67: Loading layer 3.057 MB/3.057 MB
1f4a321c7278: Loading layer 1.355 MB/1.355 MB
Loaded image: game:v2
[root@makabaka ~]# 

#运行游戏
[root@makabaka ~]# docker run -P -d game:v2
244c1e651aa5e27631b61d123be2fb48aa04337e196dc866029a5e693174dd70


#查看游戏端口号
[root@makabaka ~]# docker  ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                     NAMES
244c1e651aa5        game:v2             "/docker-entrypoin..."   30 seconds ago      Up 29 seconds       0.0.0.0:32770->80/tcp, 0.0.0.0:32769->8080/tcp, 0.0.0.0:32768->8090/tcp   cranky_stonebraker
[root@makabaka ~]# 

#可以访问的端口
0.0.0.0:32769
0.0.0.0:32768

linux的软件安装技术

  • centos平台下的

    • 管理rpm包(redhat、centos、软件包格式是rpm)
      • 手动管理这些rpm包的命令,也叫作rpm
      • rpm -ivh nginx-1.20.rpm
    • yum自动管理rpm包,处理依赖关系(redhat、centos、提供自动化管理rpm,是yum工具)
    • 源代码编译安装
    • 二进制程序解压即用安装
  • 国产的麒麟系统

  • 乌班图

    • 系统本身支持一个通用的软件包格式,比如乌班图的 *.deb
      • nginx-1.20.deb
      • 乌班图下,安装deb包的命令是dpkg这个命令
      • 还提供了一个自动化下载,安装deb包的命令,叫做apt(等于centos的yum命令)

ubuntu是什么

Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。*(centos)

商业版本以Redhat为代表,开源社区版本则以debian为代表。

这些版本各有不同的特点,在不同的应用领域发挥着不同的作用,不能一概而论。

Ubuntu适用于物联网行业:智能机器人,智能输入法,智能窗帘等

开启ssh服务

在乌班图系统下,都是普通用户操作,没有root,所以在命令之前要加上sudo

1.默认拿到的新机器可能没有ssh服务,无法通过远程连接

2安装 ssh服务
zjq@zjq-virtual-machine:~/Desktop$ sudo  apt install   openssh-server

3.启动服务
zjq@zjq-virtual-machine:~/Desktop$ sudo  systemctl  start  sshd

4.查看端口
zjq@zjq-virtual-machine:~/Desktop$ sudo  ss  -tnlp | grep sshd

5.远程连接 乌班图
ssh   zjq@192.168.161.129

ubuntu软件包管理

和centos管理方式一样,只不过软件包的格式,不是rpm包,而是deb包

但是其他管理方式,如源码编译三部曲,二进制包安装都一样。

软件包种类 特点 缺点
deb包(=rpm包) 编译好了,安装简单,安装参数固定 软件版本较低,无法定制化安装
源码包 手动编译安装,繁琐,容易出错 软件版本自由,安装自由扩展
二进制包 解压即用 无法源码,无法定制化

在Ubuntu中也有像yum一样的软件管理大师===== apt

dpkg命令管理deb包

dpkg -i package.deb                  #安装包
dpkg -r package                      #删除包,保留配置文件
dpkg -P package                       #删除包(包括配置文件)
dpkg -L package                      #列出与该包关联的文件
dpkg -l package                      #显示该包的版本
dpkg --unpack package.deb        #解开 deb 包的内容
dpkg -S keyword                      #搜索所属的包内容
dpkg -s package                 # 查询软件包详细信息
dpkg -l                              #列出当前已安装的包
dpkg -c package.deb                 #列出 deb 包的内容
dpkg --configure package         #配置包

安装nginx

#下载软件包
zjq@zjq-virtual-machine:~$ wget yuchaoit.cn/nginx_1.18.0-2~focal_amd64.deb

#安装nginx
zjq@zjq-virtual-machine:~$ sudo  dpkg  -i  nginx_1.18.0-2~focal_amd64.deb 

#启动nginx
zjq@zjq-virtual-machine:~$ sudo  systemctl  start  nginx
zjq@zjq-virtual-machine:~$ ss  -tnlp  | grep  nginx
zjq@zjq-virtual-machine:~$ sudo  ss  -tnlp  | grep  nginx
LISTEN    0         511                0.0.0.0:80               0.0.0.0:*        users:(("nginx",pid=4259,fd=6),("nginx",pid=4258,fd=6))                        


最后登录

apt命令

修改乌班图的apt源改为阿里云源,且更新源

#进入乌班图 apt 源
zjq@zjq-virtual-machine:~$ sudo  vim  /etc/apt/sources.list

#配置阿里源
zjq@zjq-virtual-machine:~$ sudo  vim  /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

#更新乌班图 apt 源
zjq@zjq-virtual-machine:~$ sudo  apt  update

利用阿里云源安装apache2,确保可以访问到页面

#安装 apache2
zjq@zjq-virtual-machine:~$ sudo  apt  install apache2

#启动 apache2
zjq@zjq-virtual-machine:~$ sudo systemctl  start  apache2
zjq@zjq-virtual-machine:~$ 
zjq@zjq-virtual-machine:~$ sudo  ss -tnlp | grep  apache2
LISTEN    0         511                      *:80                     *:*        users:(("apache2",pid=6097,fd=4),("apache2",pid=6096,fd=4),("apache2",pid=6095,fd=4))

Ubuntu搭建博客系统(Java环境)

#准备java环境
zjq@zjq-virtual-machine:~$ sudo apt install openjdk-8-jre-headless -y

#检查Java环境
zjq@zjq-virtual-machine:~$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
zjq@zjq-virtual-machine:~$ 


#下载博客源代码
zjq@zjq-virtual-machine:~$ sudo wget https://dl.halo.run/release/halo-1.4.2.jar


#启动程序
zjq@zjq-virtual-machine:~$ sudo java -jar halo-1.4.2.jar



# 后台启动
zjq@zjq-virtual-machine:~$ sudo  nohup   java -jar halo-1.4.2.jar  &
[1] 11354
zjq@zjq-virtual-machine:~$ nohup: ignoring input and appending output to 'nohup.out'

zjq@zjq-virtual-machine:~$ jobs
[1]+  Running                 sudo nohup java -jar halo-1.4.2.jar &
zjq@zjq-virtual-machine:~$ jobs


zjq@zjq-virtual-machine:~$ ps  -ef | grep nohup
root       11354    3713  0 20:48 pts/1    00:00:00 sudo nohup java -jar halo-1.4.2.jar
zjq        11405    3713  0 20:49 pts/1    00:00:00 grep --color=auto nohup

相关