小编jor*_*anm的帖子

识别系统包管理器

有没有办法(从脚本)来识别默认的系统包管理器?

澄清一下,我想要做的是运行一个给定的命令,在 Debian 或其任何衍生产品上它会返回类似“apt”的东西,在 openSUSE 上它会返回“zypp”,在 Fedora 等上它会返回“yum”,在 Arch Linux 上它会返回“pacman”等。

我知道我可以用下面的方法来做到这一点,我只是想知道是否有一种更强大的方法,只要有同名的可执行文件就不会中断。

which apt >/dev/null 2>&1
if [ $? -eq 0 ]
then
    echo "apt"
fi
# etc...
Run Code Online (Sandbox Code Playgroud)

distros shell package-management

19
推荐指数
3
解决办法
4万
查看次数

在 Fedora 21 上默认使用 VirtualBox 提供程序

现在,每当我使用 vagrant 时,它都会尝试libvirt用作提供程序。我想默认使用 VirtualBox。

vagrant-libvirt 未安装。

这很麻烦,因为有些命令不起作用,例如vagrant status

[florian@localhost local]$ vagrant status
The provider 'libvirt' could not be found, but was requested to
back the machine 'foobar'. Please use a provider that exists.
[florian@localhost local]$ vagrant status --provider=virtualbox
An invalid option was specified. The help for this command
is available below.

Usage: vagrant status [name]
    -h, --help                       Print this help
Run Code Online (Sandbox Code Playgroud)

fedora virtualbox vagrant libvirt

12
推荐指数
1
解决办法
7895
查看次数

如何确定 Systemd 进入紧急模式的确切原因

我的运行 Debian Jessie 的台式计算机在每次启动时都开始进入紧急模式 shell。屏幕说使用journalctl -xb查找原因,使用systemctl default继续引导。当我执行时systemctl default,系统继续启动,在使用系统几周后,没有任何明显的错误。

仔细看journalctl -xb,没有什么是掉到紧急情况下的原因。是否有一种简单的方法可以确定它决定进入紧急模式的确切原因?是否有其他标志或启动选项可以明确问题所在?

debian systemd systemd-journald

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

如何找出apt安装特定软件包的原因

刚刚尝试在我的 Buster - monitoring-plugins-standard 中安装以下软件包并注意到以下输出:

The following additional packages will be installed:
  dirmngr gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm libarchive13 libassuan0 libavahi-client3 libavahi-common-data libavahi-common3
  libcups2 libdbi1 libgpgme11 libksba8 libldb1 libnet-snmp-perl libnpth0 libpq5 libradcli4 libsensors-config libsensors5 libsmbclient libsnmp-base libsnmp30 libtalloc2 libtdb1
  libtevent0 libtirpc-common libtirpc3 libwbclient0 pinentry-curses python-crypto python-gpg python-ldb python-samba python-talloc python-tdb rpcbind samba-common samba-common-bin
  samba-dsdb-modules samba-libs smbclient snmp
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我理解为什么apt要安装例如gnupg吗?

查看推荐的软件包:

Recommends: bind9-host | host, dnsutils, libnet-snmp-perl, rpcbind, smbclient, snmp, sudo, libdbi1 (>= 0.8.4), libgnutls30 (>= 3.6.5), libldap-2.4-2 …
Run Code Online (Sandbox Code Playgroud)

debian

8
推荐指数
1
解决办法
924
查看次数

了解 /var/log/messages 条目

192.168.25.1 = 路由器

192.168.10.1 = 网关/调制解调器

192.168.25.144 = 这台电脑(它是运行 Fedora 17 的“linuxpc”)

下面这些日志条目事件期间发生了什么?特别是最后两个日志条目是什么意思。

Oct 10 13:24:22 linuxpc dhclient[5779]: DHCPREQUEST on p14p1 to 192.168.25.1 port 67 (xid=0x466a6633)
Oct 10 13:24:22 linuxpc dhclient[5779]: DHCPACK from 192.168.25.1 (xid=0x466a6633)
Oct 10 13:24:22 linuxpc dhclient[5779]: bound to 192.168.25.144 -- renewal in 32701 seconds.
Oct 10 13:24:22 linuxpc NetworkManager[846]: <info> (p14p1): DHCPv4 state changed renew -> renew
Oct 10 13:24:22 linuxpc NetworkManager[846]: <info>   address 192.168.25.144
Oct 10 13:24:22 linuxpc NetworkManager[846]: <info>   prefix 24 (255.255.255.0)
Oct 10 …
Run Code Online (Sandbox Code Playgroud)

linux logs d-bus

7
推荐指数
1
解决办法
8342
查看次数

gpg: 无法打开 `-': 没有那个文件或目录

我想在我的 Debian Wheeyz 系统上安装 php 56。所以我将 dotdeb repo 添加到 apt。获取密钥时,发生错误:

   # wget http://www.dotdeb.org/dotdeb.gpg -O- |apt-key add –
   # gpg: can't open `–': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我需要更改什么才能将密钥添加到 apt?

debian apt

7
推荐指数
2
解决办法
2万
查看次数

终端如何运行程序并显示其输出?

我正在慢慢地创建一个关于 linux 工作原理的心智模型,并且我已经尽量简化了我的 linux 工作模型。让我们假设内核启动并初始化它将运行的唯一软件:终端。让我们假设这个终端具有出现在屏幕上并呈现一些文本的能力,当然还有从键盘获取输入的能力。我们还假设我输入了一个可执行文件的名称,它知道它在内存中的位置。现在,终端如何运行这个程序?在我的心智模型中,我认为:

终端是一个程序,这意味着它可以进行系统调用。所以它使用 fork() 系统调用并在内核中创建一个新进程。然后,它以某种方式使这个进程运行我的程序代码。现在, printf() 如何在程序运行时在我的终端上实时显示文本?

linux command-line shell kernel

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

使用 Unix 和 Awk 比较两个文件

我需要使用 4 个字段(文件 1 的字段 1、2、4 和 5 与文件 2 的字段 1、2、4 和 5)比较两个文件 File1 和 File2(以空格分隔)。

逻辑:
如果文件 1 的第 1、2 和 4 列与文件 2 的第 1、2 和 4 列匹配,并且第 5 列不匹配,则来自文件 1 和文件 2 的行都连接起来重定向为输出。因此,输出文件仅包含 File1 和 File2 的第 1、2 和 4 列匹配而第 5 列不匹配的那些行。

文件1:

sc2/80         20      .        A       T         86       PASS     N=2     F=5;U=4
sc2/60         55      .        G       T         76       PASS     N=2     F=5;U=4 
sc2/68         20      .        T       C         71       PASS     N=2     F=5;U=4
sc2/24         24      .        T       G …
Run Code Online (Sandbox Code Playgroud)

bash sed awk

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

如何以不同的方式在数组中插入字符串

我有一个像下面这样的字符串。str='014387650' 现在我想像下面这样拆分这个字符串并将值放入数组中。

A[0]=0  
A[1]=01  
A[2]=014  
A[3]=0143  
A[4]=01438  
A[5]=014387  
A[6]=0143876  
A[7]=01438765  
A[8]=014387650  
Run Code Online (Sandbox Code Playgroud)

bash array shell-script

3
推荐指数
1
解决办法
861
查看次数

硬链接和软链接如何在后台工作?

我正在寻找对以下内容的解释:

  • 当我们创建软链接和硬链接时,Linux 中会发生什么
  • 它们如何访问
  • 为什么符号链接总是显示 777 权限

linux hard-link files

0
推荐指数
1
解决办法
452
查看次数