我正在一台无法(直接)访问互联网的 Linux 机器上工作。我想要pip install foo
一些 pypi 包 foo,但是 - 显然,这是行不通的。当然,我还有其他连接互联网的机器。
我将如何确定需要下载哪些文件、下载它们并在隔离计算机上安装它们?
笔记:
- 我宁愿得到一个与 Python 版本无关的答案,但如果它与版本相关,我们假设 Python 3.6 或更高版本。
- 这个问题听起来是一样的,但实际上是关于安装 pip istelf 的。
我正在编写一个包含某个 Linux 命令的脚本。现在,当我直接在命令行上使用该命令时,该命令具有一些自动完成行为。例如,如果我输入命令名称,然后输入空格,然后输入字符串并按 Tab 键 - 它会补全为路径上可执行文件的名称。然而,包装脚本似乎没有这种行为。如何让 bash 对我的包装器使用与原始命令相同的自动完成功能?
为了使事情更具体:命令是which
. 我正在编写一个调用它的包装器,如果它没有失败,则readlink -f
在which
. 我希望自动完成功能来查找路径上的可执行文件,就像which
.
该find
程序有一个-quit
命令行选项,它告诉它在找到匹配项并执行先前指定的命令(例如-print
)后立即退出。这非常有用,但是如果我find
在多个根目录中,并且想要每个根目录中的第一个匹配项怎么办?
有没有一种说法可以这样说:
find foo bar baz -print -continue-with-next-root
?一些 shell 代码是可以的,但我想避免find
对每个根文件夹单独调用。
pip install --system
在类似 Debian/基于 apt 的发行版上,我们使用 APT 包,而不是安装系统范围内的 Python 打包包。这里:
当 apt 没有对应的软件包时,在 Debian/Devuan 上安装 Python 软件包
正在讨论如何做到这一点。不幸的是,当我尝试使用gdown 包时,这失败了:
# mkdir /tmp/gdown
# cd /tmp/gdown
# py2dsp --build gdown
W: py2dsp cache:67: cannot load cache (_load_package_names:():{}): unpackb() got an
unexpected keyword argument 'encoding'
E: py2dsp py2dsp:172: 'build-system'
这是 py2dsp 的错误吗?我自己的系统有问题吗?
假设我想在 Debian/Devuan 系统上安装一个 Python 包系统。某些 PyPI 软件包具有可通过存储库的 apt 源获取的 DEB 软件包,软件包名称前缀为python3-
(或python-
,取决于 Debian 版本)。但是——并非所有人都这样做。现在,我总是可以推出自己的 DEB 包,但是 - 我如何知道我感兴趣的包是否是:
?是否有一个简单的映射规则,或者我可以在某个地方使用 PyPI 包名称进行查询并获取 apt 包名称?
我想pandasql
在 Devuan(或 Debian)系统上安装一些系统范围内的 Python 软件包。它在 Python 包索引中,但是 - 似乎没有它的 (dpkg) 包;让我们假设实际上不存在。
现在,如果我尝试这样做pip install pandasql
,我会收到一条消息,建议我使用虚拟环境:
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
...但是虚拟环境不是我想要做的:我想在foo
系统范围内安装。我怎样才能做到这一点?
注意事项:
pandasql
?我已经购买并插入了 USB WiFi 适配器UGreen AC650。它应该支持Linux 5.x ...
好吧,lsusb 说:
Bus 001 Device 038: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
所以在某种程度上是认可的。但是,它没有显示为ip link show
.
我已经运行了wireless-info-script
,结果就在这里;但请注意,我的系统有另一个板载 wifi 适配器,工作正常(但未使用);和一个活动的以太网连接,所以不要将那些 ( eth0
, wlan0
) 误认为是丢失的 USB WiFi 适配器。
我的问题:我可以完全识别和配置 USB WiFi 适配器吗?如果是这样,怎么做?
我宁愿为此使用命令行。我会提到,多年来我已经习惯了“正常工作”的 wi-fi 网络,并且不再完全记得如何处理ip
,iwlist
和朋友。(我确实有肉桂网络管理器,但后来我计划在其他没有那个的机器上使用这个适配器。)
我还应该提到,这个 USB 加密狗似乎有一个指示灯 - 但它没有亮起。
的尾巴/var/log/messages
:
Mar 20 09:25:27 myhostname kernel: [292007.468991] usb 1-9: new high-speed USB device number 48 using xhci_hcd
Mar 20 09:25:27 myhostname kernel: [292007.617381] usb 1-9: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00
Mar 20 09:25:27 myhostname kernel: [292007.617387] usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Mar 20 09:25:27 myhostname kernel: [292007.617391] usb 1-9: Product: 802.11ac NIC
Mar 20 09:25:27 myhostname kernel: [292007.617394] usb 1-9: Manufacturer: Realtek
Mar 20 09:25:27 myhostname kernel: [292007.617396] usb 1-9: SerialNumber: 123456
Mar 20 09:25:27 myhostname mtp-probe: checking bus 1, device 48: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-9"
Mar 20 09:25:27 myhostname mtp-probe: bus: 1, device: 48 was not an MTP device
Mar 20 09:25:27 myhostname mtp-probe: checking bus 1, device 48: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-9"
Mar 20 09:25:27 myhostname mtp-probe: bus: 1, device: 48 was not an MTP device
的尾巴dmesg
:
Mar20 09:25] usb 1-9: new high-speed USB device number 48 using xhci_hcd
[ +0.148390] usb 1-9: New USB device found, idVendor=0bda, idProduct=c811, bcdDevice= 2.00
[ +0.000006] usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000004] usb 1-9: Product: 802.11ac NIC
[ +0.000003] usb 1-9: Manufacturer: Realtek
[ +0.000002] usb 1-9: SerialNumber: 123456
我正在使用 CentOS 7.9 GNU/Linux 系统。我已经在 ; 下构建并安装了一个较新版本的 git(2.34.1 而不是 1.8.3.1 与发行版捆绑在一起)/opt/git/2.34.1
,并带有指向该目录的符号链接/opt/git/current
;并且我已将该符号链接目录添加到我的$PATH
变量(的开头)。
不幸的是,当我尝试使用 HTTPS URL 签出存储库时,我收到了一些错误
$ git clone https://github.com/eyalroz/cuda-api-wrappers.git
Cloning into 'cuda-api-wrappers'...
git: 'remote-https' is not a git command. See 'git --help'.
使用旧版本的 git克隆- 有效。
为什么会发生这种情况,我能做些什么来解决它?
我刚刚在一台机器上安装了 CentOS GNU/Linux(版本 8 build 1905);这不是我选择的发行版——我自己就是一个 Debian 人。
无论如何,当我 SSH 进入这台机器(作为非 root 用户)时,它告诉我:
使用以下命令激活 Web 控制台:systemctl enable --now cockpit.socket
这个网络控制台会有什么?它会在哪个端口上监听,为谁监听?非root用户可以在需要时简单地激活它吗?我对此感到有些困惑,因为我不习惯 CentOS。
我的系统日志充满了以下内容:
Oct 28 23:35:01 myhost CRON[17705]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Oct 28 23:45:01 myhost CRON[18392]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
还有一些
Oct 28 23:59:01 myhost CRON[19251]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 60 2)
现在,显然,这些来自 cron 作业,在/etc/cron.d/sysstat
:
# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2
我需要如此频繁地运行吗?当我手动运行它时,它似乎没有多大作用。我可以/应该只关闭 cron 作业,还是卸载 sysstat?
当我启动系统时,我收到以下消息:
[Sat Oct 26 20:34:25 2019] Calgary: detecting Calgary via BIOS EBDA area
[Sat Oct 26 20:34:25 2019] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
我在 MSI Z170 PRO GAMING 主板上的 i5-7600K CPU 上运行 Devuan 3 (Beowulf)。
当我从命令行运行 X 应用程序(例如,leafpad;大多数应用程序)时,我在控制台上收到以下警告:
... dbind-WARNING **: ... Couldn't register with accessibility bus: Did
not receive a reply. Possible causes include: the remote application did
not send a reply, the message bus security policy blocked the reply, the
reply timeout expired, or the network connection was broken.
(换行以适应列宽。)
为什么我会收到此消息,我该怎么办?发布它的应用程序似乎运行良好。
这出现在 Ubuntu 18.04 和 Devuan 3.0 Beowulf (~= Debian Buster)
我正在使用 Devuan ASCII(或多或少是 Debian 9,Stretch)。现在,我/var/log/auth.log
有一堆这些条目:
Jan 6 09:45:01 mybox CRON[20951]: pam_env(cron:session): Unable to open env file: /etc/environment: No such file or directory
Jan 6 09:45:01 mybox CRON[20951]: pam_unix(cron:session): session opened for user root by (uid=0)
这显然是在我su
.
每当我对 mercurial 做任何事情时(例如hg status
在存储库文件夹中),我都会收到一条消息:
extension 'git' overrides commands: gclear git-cleanup gimport gverify gexport
我的相关部分~/.hgrc
是:
[extensions]
hggit =
hgext.git =
删除这两行中的任何一行都会使消息消失,但是-我应该删除哪一行,应该保留哪一行?
我使用 Devuan ASCII 2.0(但这不是分发生成的.hgrc
文件)。包版本: