Linux系统管理:虚拟机Alpine Linux安装

news2024/11/17 21:36:38

目录

一、理论

1.Alpine Linux

二、实验

1.Alpine Linux安装

三、问题

1.Alpine Linux 缺少VIM命令

2.Alpine Linux SSH连接不上

3.Alpine Linux IP配置

四、总结


 

 

一、理论

1.Alpine Linux

(1)概念

Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件。

Alpine 由非商业组织维护的,支持广泛场景的 Linux发行版,它特别为资深/重度Linux用户而优化,关注安全,性能和资源效能。Alpine 镜像可以适用于更多常用场景,并且是一个优秀的可以适用于生产的基础系统/环境。
 

(2)下载

进入Alpine官网,下载Alpine Linux的ISO镜像,Alpine Linux提供了专门的虚拟机版本。

a52fb533fbe5497f90bf615708b576b4.png

(3)比较

下面是系统安装完成后,并手动使用自带软件管理器,安装vim软件后的体积对比图。

37aa86327b1c47cfbca43877ae866392.png

 (4)安装方法

安装方法参考官方的文档:
Install Alpine on VMware Workstation - Alpine Linux

(5)Alpine Linux源管理

国内源简介:

清华大学:https://mirror.tuna.tsinghua.edu.cn/alpine/
阿里云:https://mirrors.aliyun.com/alpine/
中科大:http://mirrors.ustc.edu.cn/alpine/
网易:http://mirrors.163.com/

配置:

中科大的帮助http://mirrors.ustc.edu.cn/help/alpine.html
一般情况下,将 /etc/apk/repositories 文件中 Alpine 默认的源地址 http://dl-cdn.alpinelinux.org/ 替换为 http://mirrors.ustc.edu.cn/ 即可。
 

sudo vim /etc/apk/repositories

(6) Alpine Linux 包管理

1.简介
Alpine使用apk进行包管理,下面介绍常用命令

2.apk update
apk update #更新最新镜像源列表

3.apk search
apk search #查找所以可用软件包
apk search -v #查找所以可用软件包及其描述内容
apk search -v 'acf*' #通过软件包名称查找软件包apk search -v -d ‘docker’ #通过描述文件查找特定的软件包

4.apk add
apk add openssh #安装一个软件
apk add openssh openntp vim #安装多个软件
apk add --no-cache mysql-client #不使用本地镜像源缓存,相当于先执行update,再执行add

5.apk info
apk info #列出所有已安装的软件包
apk info -a zlib #显示完整的软件包信息
apk info --who-owns /sbin/lbu #显示指定文件属于的包

6.apk upgrade
apk upgrade #升级所有软件
apk upgrade openssh #升级指定软件
apk upgrade openssh openntp vim #升级多个软件
apk add --upgrade busybox #指定升级部分软件包

7.apk del
apk del openssh #删除一个软件

(7)  Alpine Linux服务管理

1.简介
alpine没有使用fedora的systemctl来进行服务管理,使用的是RC系列命令
未安装openrc时需执行以下命令

sudo apk add --no-cache openrc

2.rc-update
rc-update主要用于不同运行级增加或者删除服务。

alpine:~# rc-update --help
Usage: rc-update [options] add <service> [<runlevel>...]
   or: rc-update [options] del <service> [<runlevel>...]
   or: rc-update [options] [show [<runlevel>...]]
 
Options: [ asuChqVv ]
  -a, --all                         Process all runlevels
  -s, --stack                       Stack a runlevel instead of a service
  -u, --update                      Force an update of the dependency tree
  -h, --help                        Display this help output
  -C, --nocolor                     Disable color output
  -V, --version                     Display software version
  -v, --verbose                     Run verbosely
  -q, --quiet                       Run quietly (repeat to suppress errors)

3.rc-status
rc-status 主要用于运行级的状态管理。

alpine:~# rc-status --help
Usage: rc-status [options] <runlevel>...
   or: rc-status [options] [-a | -c | -l | -m | -r | -s | -u]
 
Options: [ aclmrsuChqVv ]
  -a, --all                         Show services from all run levels
  -c, --crashed                     Show crashed services
  -l, --list                        Show list of run levels
  -m, --manual                      Show manually started services
  -r, --runlevel                    Show the name of the current runlevel
  -s, --servicelist                 Show service list
  -u, --unused                      Show services not assigned to any runlevel
  -h, --help                        Display this help output
  -C, --nocolor                     Disable color output
  -V, --version                     Display software version
  -v, --verbose                     Run verbosely
  -q, --quiet                       Run quietly (repeat to suppress errors)


4.rc-service
rc-service主用于管理服务的状态

alpine:~# rc-service --help
Usage: rc-service [options] [-i] <service> <cmd>...
   or: rc-service [options] -e <service>
   or: rc-service [options] -l
   or: rc-service [options] -r <service>
 
Options: [ ce:ilr:INChqVv ]
  -e, --exists <arg>                tests if the service exists or not
  -c, --ifcrashed                   if the service is crashed then run the command
  -i, --ifexists                    if the service exists then run the command
  -I, --ifinactive                  if the service is inactive then run the command
  -N, --ifnotstarted                if the service is not started then run the command
  -l, --list                        list all available services
  -r, --resolve <arg>               resolve the service name to an init script
  -h, --help                        Display this help output
  -C, --nocolor                     Disable color output
  -V, --version                     Display software version
  -v, --verbose                     Run verbosely
  -q, --quiet                       Run quietly (repeat to suppress errors)


5.openrc
openrc主要用于管理不同的运行级。

alpine:~# openrc --help
Usage: openrc [options] [<runlevel>]
 
Options: [ a:no:s:SChqVv ]
  -n, --no-stop                     do not stop any services
  -o, --override <arg>              override the next runlevel to change into
                                    when leaving single user or boot runlevels
  -s, --service <arg>               runs the service specified with the rest
                                    of the arguments
  -S, --sys                         output the RC system type, if any
  -h, --help                        Display this help output
  -C, --nocolor                     Disable color output
  -V, --version                     Display software version
  -v, --verbose                     Run verbosely
  -q, --quiet                       Run quietly (repeat to suppress errors)


6.常用的RC系列命令
1.增加服务到系统启动时运行,下例为docker
rc-update add docker boot

2.重启网络服务
rc-service networking restart

3.列出所有服务
rc-status -a

服务开机自启
Alpine Linux 的 开机自启目录在/etc/local.d下,这个目录用于放置我们需要在本地服务启动或停止后执行的脚本。

 

 

二、实验

1.Alpine Linux安装

(1)新建虚拟机

新建一台虚拟机,类型选Linux,

da7f642286904acb888783b2e8e1f217.png

 版本选Linux 3.x / 4.x (64-bit),9cd1e803d57446a3a87ba416c61c5ea3.png

 虚拟机名称

e8b0de70c5aa46c2b5b154b96a3c7378.png

虚拟磁盘8G

e437abce79054ec4825e92380d356e53.png

自定义硬件, 内存一般1G

3054167f9c2941e8a1c8152f04882084.png

完成

c6f195cf5bbf4f37a587b15fa76dfbd8.png 

 引导

636d6b78e96947ffa3c0f5b592828b96.png

 首次启动时使用root这个用户名登录,不需要密码

8ddb95c9806d44428ccd2a510e3e9598.png

 登录成功后,执行setup-alpine进入安装向导,向导会询问你一系列的问题,然后等待你的输入。

16ba6d1693ed43b6899b025926465cdf.png

 备注:如果途中操作有失误,可以按Ctrl + c 退出向导,再重新开始向导。

下面是每个问题的具体含义及操作步骤。

Select keyboard layout [none]: 
选择键盘布局,系统默认给你选了none,直接回车

Enter system hostname (short form, e.g. 'foo') [localhost]
选择虚拟机host名称,系统给你选了localhost,没有特殊需要的话直接回车

Which one do you want to initialize? (or '?' or 'done') [eth0]
选择要不要设置网卡,系统给你选了需要初始化eth0那张网卡,直接回车

Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp]
输入eth0网卡的IP地址,或者直接通过dhcp协议自动获取IP,系统给你选了dhcp,直接回车

Do you want to do any manual network configuration? [no]
还需要手工修改网卡的其他配置吗?系统给你选了no,直接回车

Changeing password for root
New password:
安装完成后,就不能像现在这样不用密码就登录了,系统提示你输入root帐号的密码。
Retype Password:
确认一遍密码

Which timezone are you in? ('?' for list) [UTC]
输入时区,国内可以输入"Asia/Shanghai"

HTTP/FTP pxory URL?
需要使用HTTP代理连接网络吗?一般不需要,可以直接回车

Enter mirror number (1-21) or URL to add (or r/f/e/done) [f]
Alpine Linux自带的包管理器需要联网下载软件包

每个步骤直接按回车默认选择

82f6e8f38d784106b3670cc07149ee75.png

 0955388f7de54bb0b552968acfecbce2.png

 

a46280d2ad2c484c8672558198b50057.png

 此时屏幕上会打出多个镜像站的URL,但都是国外的

ad2712530ecb46da9f6f109d59fe98ce.png

 

这里推荐使用国内镜像:这时候按下e,编辑镜像配置文件,把国内的镜像地址填进去:

0f5485b5e82948aa9196f2c3eb8b2e87.png

https://mirrors.ustc.edu.cn/alpine/latest-stable/community/
https://mirrors.ustc.edu.cn/alpine/latest-stable/main/
https://mirrors.aliyun.com/alpine/latest-stable/community/
https://mirrors.aliyun.com/alpine/latest-stable/main/

d29355ef9a1447e8886aeab85fb36e5f.png

 9995c0370a3d42fab2b67e205f9fab90.png

 

退出编辑后向导会检查地址是否可用,没问题的话会继续下面的步骤。 

Which SSH server? ('openssh', 'dropbear' or 'none') [openssh]
SSH服务器(用于登录Linux)有两种可供选择,默认选择openssh,回车

Which NTP client to run? ('busybox', 'openntpd', 'chorony' or 'none') [chrony]
选择NTP客户端(用来调整系统时钟)的类型,保持默认的chrony即可,回车

Available disks are:
  sda   (8.6 GB ATA    VBOX HARDDISK    )
Which disk(s) would you like to use? (or '?' for help or 'none') [none]
这一步比较关键,系统发现了有块8.6GB大小,名称叫sda的硬盘
问你需不需要使用硬盘,因为Alpine Linux可以运行在内存里,这里的默认选项是不使用硬盘
所以要手动键入sda,后面的步骤才会将系统安装在硬盘上

The following disk is selected:
  sda   (8.6 GB ATA      VBOX HARDDISK    )
How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?]
以何种方式安装系统,这里需要键入"sys",表示把整个系统安装在硬盘上。
其他选项并不适用于虚拟机

WARNING: The following disk(s) will be erased:
  sda   (8.6 GB ATA      VBOX HARDDISK   )
WARNING: Erase the above disk(s) and continue? [y/N]
向导让你确认选择的sda磁盘上的数据会全部丢失
虚拟机磁盘,初始肯定是没数据的,键入"y"确认

4d541a51bebd4c1998fca057bebbe2ec.png

 

 

随着屏幕滚动,系统会安装一阵子,等出现这行字时,就算安装完成了。

Instalation is complete. Please reboot
安装完成,请重启(先别着急)

f2d7af78243648aa9ac2934802af8b99.png

看一下安装完成后系统空间的使用情况。

 c6a33d58a1be45eca2e6f21f1efad4a7.png

 重启后登录

17a149fd96b54683943dfafd389ceb5e.png

 

三、问题

1.Alpine Linux 缺少VIM命令

(1)报错

17bd389e59774c69b3c4b1a187ada8c8.png

(2)原因分析

在Alpine Linux上安装Vim有3种方法:

①APK是Alpine Linux的包管理器,可以使用它来安装Vim。要安装Vim,请打开终端,然后键入以下命令:

apk add vim

安装完成后,您可以使用以下命令检查Vim的版本:

vim --version

②使用源代码安装Vim

如果想要安装最新版本的Vim,则可以使用源代码安装。要安装Vim,请打开终端,然后键入以下命令:

wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
cd vim-master
./configure
make
make install

安装完成后,您可以使用以下命令检查Vim的版本:

vim --version

③ 使用Vim容器安装Vim

如果您想要安装Vim,但又不想安装太多依赖包,则可以使用Vim容器。要安装Vim容器,请打开终端,然后键入以下命令:

docker pull vim

安装完成后,您可以使用以下命令检查Vim的版本:

docker run --rm -it vim --version

(3)解决方法

安装

f8ce356dd0f049d8b47ba2fb738930a8.png

查看版本

cee937c9b6d34bc3b5eac1907eb71f81.png

 

2.Alpine Linux SSH连接不上

(1)原因分析

未修改配置文件

(2)解决方法

 vim /etc/ssh/sshd_config

(3)增加

PermitRootLogin yes
GatewayPorts yes
AllowTcpForwarding yes
PermitEmptyPasswords yes

b39a199ee8ef4db7b01c0ae0cbaec010.png

 service sshd restart
映射虚拟机22端口

68f40f49b2964ab9b093091ff5768898.png

SSH 连接成功

778e498841c64964b69f95302c0e44cb.png

 

3.Alpine Linux IP配置

(1)解决方法

添加网卡

b3478cc060ba4fce9bd78d017a81c698.png

 

#编辑interfaces 
vim /etc/network/interfaces

#配置
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
      hostname localhost

d2dfcf2c97024570a8da0202ea5bde80.png

 重启网络服务

service networking restart

10446ae192544d1497fdeb12d3c43ec5.png

 

四、总结

Alpine Linux安装非常简单,快速。虽然是命令行安装,比CentOS的安装都容易。

系统安装完后,体积上面有着非常明显的优势。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/826901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 第五章之软件包管理器 yum

一、什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的…

概率论与数理统计复习总结3

概率论与数理统计复习总结&#xff0c;仅供笔者复习使用&#xff0c;参考教材&#xff1a; 《概率论与数理统计》/ 荣腾中主编. — 第 2 版. 高等教育出版社《2024高途考研数学——概率基础精讲》王喆 概率论与数理统计实际上是两个互补的分支&#xff1a;概率论 在 已知随机…

【微服务】springboot整合redis哨兵集群使用详解

目录 一、前言 二、环境准备 三、安装redis 3.1 前置准备 3.1.1 下载安装包 3.1.2 准备依赖环境 3.1.3 上传并解压包 3.2 执行安装 四、搭建redis主从集群 4.1 环境准备 4.2 搭建过程 4.2.1 创建实例文件目录 4.2.2 修改redis.conf配置文件 4.2.3 拷贝配置文件 4…

设计模式之开闭原则

什么是开闭原则? 开放封闭原则称为OCP原则&#xff08;Open Closed Principle&#xff09;是所有面向对象原则的核心。 “开闭原则”是面向对象编程中最基础和最重要的设计原则之一。 软件设计本身所追求的目标就是封装变化、降低耦合&#xff0c;而开放封闭原则正是对这一…

GICI-LIB代码框架学习

一直想要学习多源融合&#xff0c;一直各种琐碎事情耽搁&#xff0c;没有进展。终于&#xff0c;今天以上海交大开源的GNSS/INS/Camera组合导航库为开始。 二话不说&#xff0c;github下载代码后&#xff0c;不编译&#xff0c;不运行&#xff0c;直接vs code打开工程&#xf…

【excel常用文本函数大全上】

目录索引 LEFT&#xff1a;公式&#xff1a;举例&#xff1a; RIGHT&#xff1a;公式&#xff1a;举例&#xff1a; MID&#xff1a;公式&#xff1a;举例&#xff1a; FIND&#xff1a;公式&#xff1a;举例&#xff1a; LEN&#xff1a;公式&#xff1a;举例&#xff1a; LEN…

base64编码转图片

String data"data:image/jpeg;base64,/9j/4T...."; // String data"null";String taskid"4028488c894831fd01894cbf0c6f0033";if(data.equals("")||data.equals("null")){System.out.println("无朝向照片可…

Java IO编程(一)

目录 1.File类 2.字节输入输出流(InputStream Outputstream) 3.Writer与Reader字符输入输出流 4.打印流 1.File类 file类专门用于管理file文件的&#xff0c;比如文件的创建&#xff0c;删除&#xff0c;修改名称等等 以下是File类的常用方法&#xff1a; 方法描述exists()…

《Opencv入门到项目实战》(一):Opencv安装及图像基本操作

文章目录 0.Opencv介绍及环境配置1.图像读取1.1 彩色图像读取1.2 灰色图像读取 2.视频读取3.ROI读取3.1 图形切片处理3.2 提取颜色通道 4.图像填充5.数值运算与图像融合5.1 加法运算5.2 图像融合 6. 总结 0.Opencv介绍及环境配置 OpenCV是一个强大的计算机视觉库&#xff0c;它…

CS5265 USB-C to HDMI 4k@60Hz单转方案

CS5265AN是一款高性能Type-C/DP1.4至HDMI2.0b转换器芯片&#xff0c;集成了DP1.4兼容接收机和HDMI2.0b兼容发射机&#xff0c;还配备了CC控制器用于CC通信&#xff0c;实现DP Alt模式。DP接口包括4条主通道、辅助通道和HPD信号&#xff0c;接收器支持每通道最大5.4Gbps数据速率…

通过 CCIP 构建跨链应用(5 个案例)

Chainlink 的跨链互操作性协议&#xff08;CCIP&#xff09;是一种新的通用跨链通信协议&#xff0c;为智能合约开发人员提供了以最小化信任的方式在区块链网络之间传输数据和通证的能力。 目前&#xff0c;部署在多个区块链上的应用程序面临着资产、流动性和用户的碎片化问题…

【dfs分解质因数】CF27E

Problem - 27E - Codeforces 题意&#xff1a; 思路&#xff1a; 爆搜分解质因子的模板题&#xff0c;记录一下板子 Code&#xff1a; #include <bits/stdc.h>#define int long longusing namespace std;const int mxn1e610; const int mxe1e610; const int mxv1e610…

跨部门协作,企业图文档管理的协同管理的重要性

随着企业规模的扩大和业务流程的复杂化&#xff0c;图文档管理涉及的部门和人员越来越多&#xff0c;因此跨部门协作成为了必不可少的管理方式。在线图文档管理作为现代企业的数字化解决方案之一&#xff0c;为跨部门协作提供了强大的支持和便利。在线图文档管理在企业图文档管…

什么是图像特征?如何让计算机理解图像特征?

图像的特征 大多数人都玩过拼图游戏。首先拿到完整图像的碎片&#xff0c;然后把这些碎片以正确的方式排列起来从而重建这幅图像。如果把拼图游戏的原理写成计算机程序&#xff0c;那计算机就也会玩拼图游戏了。 在拼图时&#xff0c;我们要寻找一些唯一的特征&#xff0c;这…

React Dva项目 Model中编写与调用异步函数

上文 React Dva项目中模仿网络请求数据方法 中&#xff0c;我们用项目方法模拟了后端请求的数据 那么 今天我们就在models中尝试去使用一下这种异步获取数据的方法 之前 我们在文章 React Dva项目创建Model,并演示数据管理与函数调用 中已经接触过Model了 也可以理解为 它就是 …

火爆全网,Fiddler手机抓包-接口测试辅助实战(最全总结)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Fiddler是一款安装…

【PostgreSQL】系列之 一 用户创建和授权(三)

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的…

新手入门Jenkins自动化部署入门详细教程

1. 背景 在实际开发中&#xff0c;我们经常要一边开发一边测试&#xff0c;当然这里说的测试并不是程序员对自己代码的单元测试&#xff0c;而是同组程序员将代码提交后&#xff0c;由测试人员测试&#xff1b; 或者前后端分离后&#xff0c;经常会修改接口&#xff0c;然后重新…

使用Netty库:关闭或者调整在控制台输出的日志

问题现象 今天使用Netty库&#xff0c;一运行&#xff0c;在控制台输出了很多debug级别的日志&#xff0c;把我主要的输出信息都掩盖了&#xff1a; 程序代码&#xff1a; package com.thb;import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; impor…

[openCV]基于拟合中线的智能车巡线方案V2

import cv2 as cv import os import numpy as np# 遍历文件夹函数 def getFileList(dir, Filelist, extNone):"""获取文件夹及其子文件夹中文件列表输入 dir&#xff1a;文件夹根目录输入 ext: 扩展名返回&#xff1a; 文件路径列表"""newDir d…