小编Chr*_*aes的帖子

我的 linux ARM 是 32 位还是 64 位?

在英特尔下,我知道我可以查看结果uname -m以了解我的操作系统是 32 位还是 64 位,但在 ARM 下,这给出了:

armv7l
Run Code Online (Sandbox Code Playgroud)

我从

file /usr/bin/ls
Run Code Online (Sandbox Code Playgroud)

我在 32 位操作系统上,但我如何以更简单的方式知道这一点?

64bit arm 32bit

91
推荐指数
4
解决办法
21万
查看次数

将二进制文件放在哪里,以便它们始终在路径中并且可以轻松找到

我正在制作一些我想轻松安装的二进制文件、脚本等(使用我自己的 rpm)。因为我希望每个人都可以访问它们,所以我的直觉是将它们放在 /usr/bin 中;

  • 无需更改路径

然而; 我的可执行文件现在消失在所有其他文件的池中;我怎样才能以一种简单的方式找回我放在那里的所有可执行文件。我在想:

  • /usr/bin 中的子目录(我知道我不能这样做;只是为了说明我的想法)
  • 另一个目录(/opt/myself/bin)并将每个可执行文件链接到/usr/bin(大量工作)
  • 另一个目录(/opt/myself/bin)并将目录链接到/usr/bin(这可能吗?)

什么是“最好的,最符合 linux 的方式”来做到这一点?

编辑:我们在公司对此进行了讨论,并提出了这个次优选项:将二进制文件放在 /usr/bin/company 中,并使用来自 /usr/bin 的符号链接。我对这个解决方案并不感到兴奋(讨论正在进行中)

path executable software-installation

10
推荐指数
1
解决办法
3232
查看次数

systemctl 检查单元(服务或目标)是否存在

我想知道是否systemd存在某个单位。

这应该适用于:

  • 任何类型的单元(服务、目标、安装等)
  • 运行、禁用或屏蔽单元

我知道我可以这样做:

systemctl list-unit-files | grep "^my.target"
Run Code Online (Sandbox Code Playgroud)

但感觉必须有更好的方法。

或者,我希望能够通过仅指定my而无需指定“.service”(如其他systemctl命令)来运行此检查,例如

systemctl exists my
Run Code Online (Sandbox Code Playgroud)

systemd systemctl

9
推荐指数
2
解决办法
4920
查看次数

运行多个 docker 实例时出现“pthread_create:资源暂时不可用”

TLDR

npm ci启动我运行的多个 docker 容器时,我开始收到pthread_create: Resource暂时不可用错误(少于 5 个 docker 容器可以正常运行)。我推断某处存在某种线程限制,但我找不到此处阻塞的是哪个线程。

配置

  • 一个Jenkins实例为每个构建启动 docker 容器(通过 ssh 连接到这个 docker 容器)。
  • 在每个容器中运行一些构建命令;我在使用时经常看到错误,npm ci因为这似乎创建了很多线程;但我不认为问题与npm它本身有关。
  • 所有 docker 容器都运行在一个docker-host 上。它的规格:

docker-host

  • Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz with 12 cores, 220 GB RAM
  • Centos 7
  • Docker 版本 18.06.1-ce,构建 e68fc7a
  • 系统版本 219
  • 内核 3.10.0-957.5.1.el7.x86_64

错误

我可以看到不同形式下的错误:

  • jenkins 无法联系 docker 容器;错误如:java.lang.OutOfMemoryError:无法创建新的本机线程
  • git clone在容器内失败并出现错误:错误克隆远程存储库“原点”...... 原因:java.lang.OutOfMemoryError:无法创建新的本机线程
  • npm ci节点 [1296]的容器内失败:pthread_create:资源暂时不可用

我调查过或尝试过的事情 …

multithreading ulimit docker

5
推荐指数
1
解决办法
5015
查看次数

zypper 搜索输出 i+ 是什么意思?

我正在努力理解 zypper 输出搜索中“+”符号的含义。

我有一些包裹在 S 领域有 I,其他有 I+。

这是什么+?

出于某种原因,我的系统在数据包 X 中没有 +,而另一个数据包 Y 有问题。在另一个有 + 符号的系统中,这个问题不存在。

干杯

opensuse zypper

4
推荐指数
1
解决办法
2627
查看次数

三元运算符内的 awk 字段打印

如果您熟悉DISA STIGs ,那么RHEL-06-000518的测试是

/bin/rpm -Va 2>/dev/null \
  | /bin/grep '^.M'
Run Code Online (Sandbox Code Playgroud)

我想要做的就是从该测试中提取文件名,并使用包名称和有问题的文件进行漂亮的输出。但是,我的 awk 没有这样做。这就是我正在尝试的:

/bin/rpm -Va 2>/dev/null \
  | grep '^.M' \
  | awk '{print ($2 ~ /./ ? $3 : $2)}'
Run Code Online (Sandbox Code Playgroud)

理论上,如果字段 2 是单字符文件类型之一(%config、%documentation 等,请参阅rpm 手册页) ,则告诉 awk 打印字段 3

但是,我得到的是文件名 if-and-only-if ($2 ~ /./)。否则,即使我用 0 美元代替最后的 2 美元,我也只是得到一个空行。

我缺少什么?

bash awk

2
推荐指数
1
解决办法
771
查看次数