AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-217726

Joseph Sible-Reinstate Monica's questions

Martin Hope
Joseph Sible-Reinstate Monica
Asked: 2024-12-09 01:06:13 +0800 CST

如何在 Arch Linux 上以非交互方式用 iptables-nft 替换 iptables?

  • 6

我正在尝试为已安装的 Arch Linux 映像创建 Dockerfile iptables-nft。如果我以交互方式运行Docker 映像,archlinux然后pacman -Syu iptables-nft,系统会询问我iptables-nft-1:1.8.10-2 and iptables-1:1.8.10-2 are in conflict. Remove iptables? [y/N]。Proceed with installation? [Y/n]对这两个问题都回答是,就可以满足我的要求。

当我尝试在 Dockerfile 中编写脚本时,问题就出现了,我无法以交互方式回答这些问题。我的第一次尝试是RUN pacman --noconfirm -Syu iptables-nft,但这行不通,因为这--noconfirm意味着要使用默认答案,而第一个问题的默认答案是否定的。然后我尝试iptables在安装之前先删除iptables-nft,但iproute2依赖于iptables或iptables-nft,并且base依赖于iproute2。

这让我想到了一些在技术上可行的方法,但所有这些方法都让我感到担忧:

  1. RUN yes | pacman -Syu iptables-nft可以,但是y如果 pacman 问的是非是非否的问题,则盲目地回答它会破坏它所问的任何问题,并且如果它问除了“删除 iptables?”之外的任何默认否的问题,那么盲目地回答它们是也可能是不好的。
  2. RUN pacman --noconfirm -Rdd iptables && pacman --noconfirm -Syu iptables-nft可以工作,但如果iptables得到任何iptables-nft不满足的依赖关系,我的系统就会崩溃,而且如果安装任何软件包只是因为旧软件包iptables需要它们,它们就会被无限期地遗留。
  3. RUN pacman --noconfirm -Rsdd iptables && pacman --noconfirm -Syu iptables-nft可以工作,但是它具有与#2相同的系统损坏风险,并且它还会卸载一堆其他软件包然后立即重新安装它们。

有没有比上述任何一种更好的解决方案?理想情况下,我只想要一个 pacman 等价物dnf swap,但我找不到任何这样的东西。

arch-linux
  • 1 个回答
  • 101 Views
Martin Hope
Joseph Sible-Reinstate Monica
Asked: 2022-06-17 18:49:36 +0800 CST

在这种情况下,bash 如何知道其父进程的协同进程,为什么 shebang 行会改变它?

  • 2

outer.sh:

ls -l /proc/$$/exe
coproc cat
./inner.sh
kill $!

inner.sh:

ls -l /proc/$$/exe
set | grep COPROC || echo No match found
coproc cat
kill $!

当我运行时./outer.sh,会打印出来:

lrwxrwxrwx 1 joe joe 0 Jun 16 22:47 /proc/147876/exe -> /bin/bash
lrwxrwxrwx 1 joe joe 0 Jun 16 22:47 /proc/147879/exe -> /bin/bash
No match found
./inner.sh: line 3: warning: execute_coproc: coproc [147878:COPROC] still exists

既然COPROC并COPROC_PID没有设置在孩子身上,它怎么知道来自父母的那个能够给我这个警告?

此外,我发现如果我添加#!/bin/bash到顶部inner.sh,或者如果我调用bash ./inner.sh而不是仅仅./inner.shfrom outer.sh,那么警告就会消失。为什么这会改变任何东西,因为无论哪种方式都使用 bash 子进程运行?

bash shebang
  • 1 个回答
  • 83 Views
Martin Hope
Joseph Sible-Reinstate Monica
Asked: 2021-11-12 09:01:00 +0800 CST

如何绕过“不允许此操作,因为它会破坏系统。中止。” 在 Pop!_OS 上?

  • 5

在 Pop!_OS 上,我正在尝试删除标记为“必需”的 apt 包。我了解后果并知道如何确保之后我仍然能够使用我的系统。在有关此在线的示例和文档中,它说我所要做的就是输入Yes, do as I say!apt,但我没有收到提示,而是收到以下消息:

This operation is not permitted because it will break the system.
Abort.

这是我自己的系统,所以我不需要权限来删除我想要的任何包,然后自己处理后果。我怎样才能绕过这个?

apt pop-os
  • 2 个回答
  • 1010 Views
Martin Hope
Joseph Sible-Reinstate Monica
Asked: 2018-09-09 14:56:28 +0800 CST

只有 IPv6 而不是 IPv4 的系统?

  • 2

https://web.archive.org/web/20160528234959/https://wiki.freebsd.org/IPv6Only讨论了仅支持 IPv6,不支持 IPv4 的 FreeBSD 映像。不过,该页面不再存在(因此我的存档链接),我找不到任何关于此的最新信息。我的问题:今天,在任何现代 UNIX 或 Linux 系统上,是否有可能只支持 IPv6 而不是 IPv4,就像那个旧的 FreeBSD 映像一样?如果执行此操作的方式需要自定义内核或类似的工作,那也没关系。

我见过的其他地方问过这个问题(都是在我最初问这个问题之后的日期):

  • https://ungleich.ch/en-us/cms/blog/2019/01/09/die-ipv4-die/
  • https://lkml.org/lkml/2019/4/25/257
ipv6
  • 3 个回答
  • 1377 Views
Martin Hope
Joseph Sible-Reinstate Monica
Asked: 2018-08-28 14:14:43 +0800 CST

为什么 strace 和 ltrace 会导致 EINTR 发生?

  • 3

考虑这个程序:

#include <stdio.h>
#include <sys/epoll.h>

int main(void) {
       int epfd = epoll_create1(0);
       struct epoll_event event;
       event.events = EPOLLIN;
       event.data.fd = 0;
       epoll_ctl(epfd, EPOLL_CTL_ADD, 0, &event);
       epoll_wait(epfd, &event, 1, -1);
       perror("epoll_wait");
       return 0;
}

当我自己运行这个程序时,调整终端的大小(从而生成 SIGWINCH)对它没有任何作用,它一直在等待 stdin 上的输入。当我在 strace 或 ltrace 中运行它时,SIGWINCH 会导致 epoll_wait 出现 EINTR 错误。我对 EINTR 的理解是,它仅在信号调用代码中的信号处理程序时生成,但我没有注册它们中的任何一个。我认为 strace 或 ltrace 可能已经为我设置了一个,所以我尝试将其显式设置为 SIG_IGN,但这仍然没有阻止 EINTR。为什么会这样?

signals system-calls
  • 1 个回答
  • 765 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve