alpine使用的避坑指南
alpine,是一个重量仅为5 MB的最小Linux发行版。它还有基本的linux工具和一个不错的包管理器APK。APK非常稳定,有相当数量的包。由于体积小,在容器中很受欢迎,但是使用上坑也很多,大部分可能是我们的无知吧。
坑1 : 下载慢
解决:
echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main" > /etc/apk/repositories \
&& echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community" >> /etc/apk/repositories \
&& echo "https://mirror.tuna.tsinghua.edu.cn/alpine/edge/testing" >> /etc/apk/repositories
坑2: 找不到包
解决: 搜索 https://pkgs.alpinelinux.org/packages ,加入指定的“Branch”和“Repository”的源到/etc/apk/repositories,就可以apk add
坑3: 安装失败
ERROR: https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community: Bad file descriptor
WARNING: Ignoring APKINDEX.79f426e4.tar.gz: Bad file descriptor
ERROR: unsatisfiable constraints:
openssh (missing):
required by: world[openssh]
解决:
apk add openssh --no-cache #加--no-cache, 另外,还能减少镜像体积
坑4:镜像体积大,想删除不再使用的包
apk add 加 -t 参数
-t, --virtual NAME Instead of adding all the packages to 'world', create a new virtual package with the listed dependencies and add that to 'world'; the
actions of the command are easily reverted by deleting the virtual package
这意味着当您安装软件包时,这些软件包不会添加到全局软件包中。这种变化可以很容易地回滚/删除。所以,如果我需要gcc来编译程序,但是一旦程序被编译,我就不再需要gcc了。
我可以在虚拟包中安装gcc和其他必需的包,并且可以删除所有依赖项,并删除此虚拟包名称。以下是示例用法
apk add --virtual mypacks gcc vim
apk del mypacks
使用第一个命令安装的所有18个软件包将被下一个命令删除。
注意:同一个-t参数会覆盖之前的所有安装包,所有对动态链接库最好不使用-t ,或者保证此参数不重复。
坑5:时间不同步
echo "Asia/Shanghai" > /etc/timezone
apk add –no-cache tzdata
TZ=Asia/Shanghai
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
坑6:用户(组)和宿主机不兼容
解决:
addgroup -g -S www \
&& adduser -u -D -S -G www www
坑7:不兼容glibc
解决:
使用最新稳定版本的alpine,
#再安装编译环境
apk add --virtual .build-base --no-cache
autoconf \
automake \
g++ \
make \ linux-headers \
bsd-compat-headers
alpine使用的避坑指南的更多相关文章
- electron 编译 sqlite3避坑指南---尾部链接有已经编译成功的sqlite3
electron 编译 sqlite3避坑指南(尾部链接有已经编译成功的sqlite3) sqlite很好用,不需要安装,使用electron开发桌面程序,sqlite自然是存储数据的不二之选,奈何编 ...
- CEF避坑指南(一)——下载并编译第一个示例
CEF即Chromium Embedded Framework,Chrome浏览器嵌入式框架.它提供了接口供程序员们把Chrome放到自己的程序中.许多大型公司,如网易.腾讯都开始使用CEF进行前端开 ...
- Canal v1.1.4版本避坑指南
前提 在忍耐了很久之后,忍不住爆发了,在掘金发了条沸点(下班时发的): 这是一个令人悲伤的故事,这条情感爆发的沸点好像被屏蔽了,另外小水渠(Canal意为水道.管道)上线一段时间,不出坑的时候风平浪静 ...
- Linux下Python3.6的安装及避坑指南
Python3的安装 1.安装依赖环境 Python3在安装的过程中可能会用到各种依赖库,所以在正式安装Python3之前,需要将这些依赖库先行安装好. yum -y install zlib-dev ...
- Hive改表结构的两个坑|避坑指南
Hive在大数据中可能是数据工程师使用的最多的组件,常见的数据仓库一般都是基于Hive搭建的,在使用Hive时候,遇到了两个奇怪的现象,今天给大家聊一下,以后遇到此类问题知道如何避坑! 坑一:改变字段 ...
- Harmony OS 开发避坑指南——源码下载和编译
Harmony OS 开发避坑指南--源码下载和编译 本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(Hi3516,Hi3518和Hi3861)的编译环境,以及如何将源码编译为三个 ...
- 今天 1024,为了不 996,Lombok 用起来以及避坑指南
Lombok简介.使用.工作原理.优缺点 Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok 提供了一组有用的注解,用来消除 Java 类中的大量样板代码. 目录 L ...
- Android连接远程数据库的避坑指南
Android连接远程数据库的避坑指南 今天用Android Studio连接数据库时候,写了个测试连接的按钮,然后连接的时候报错了,报错信息: 2021-09-07 22:45:20.433 705 ...
- Windows环境下Anaconda安装TensorFlow的避坑指南
最近群里聊天时经常会提到DL的东西,也有群友在学习mxnet,但听说坑比较多.为了赶上潮流顺便避坑,我果断选择了TensorFlow,然而谁知一上来就掉坑里了…… 我根据网上的安装教程,默认安装了最新 ...
随机推荐
- Uniform Buffer
Uniform Buffer 是一个很有用的缓存,可以将大量的需要传递至多个着色器的矩阵.向量数据等存储在uniform buffer中.这是一个公共的缓存,所以当多个着色器需要传递相同的数据时,可以 ...
- clientHeight获取屏幕可视化高度
此时你设置后会发现屏幕的高度出现滚动条 那是因为body有8个外边距 设置margin:0就可以解决 watch可以区监听data中的数据,只要data中的数据发生变化 就可以执行watch中的函数了 ...
- BCD解密
#include<stdio.h> int main(void) { int num; scanf_s("%d", &num); printf( * + num ...
- Go语言调度器之调度main goroutine(14)
本文是<Go语言调度器源代码情景分析>系列的第14篇,也是第二章的第4小节. 上一节我们通过分析main goroutine的创建详细讨论了goroutine的创建及初始化流程,这一节我们 ...
- 用eclipse开发Android,用Genymotion测试时报错adb发生错误
每当我要运行安卓程序时,控制台就会报出 The connection to adb is down, and a severe error has occured. You must restart ...
- streamsets 源码构建
依赖构建工具 git 1.9+ oracle jdk 8 docker 1.10+ maven 3.3.9+ nodejs npm grunt-cli md5sum 预备构建任务 data col ...
- [Taro] 解决 使用 Taro UI 小程序下 Iconfont 图标 不显示问题
Taro UI 配置 第三方 的 文档 配置即可解决 https://taro-ui.jd.com/#/docs/icon 解决问题: 之前 只有在H5下 才显示 Iconfont 图标 后来按照此文 ...
- 数据库的查——select的基本使用
--创建学生表 create table students ( id int unsigned not null auto_increment primary key, name varchar(20 ...
- [LeetCode] 105. Construct Binary Tree from Preorder and Inorder Traversal 由先序和中序遍历建立二叉树
Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- IDEA中把普通的Java项目转换成gradle项目
1.在该项目的跟目录下创建build.gradle 和 settings.gradle文件,内容如下: build.gradle: plugins { id 'java' } group 'coco' ...