首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查是否使用命令行安装了c-blosc?

如何检查是否使用命令行安装了c-blosc?
EN

Stack Overflow用户
提问于 2021-07-11 05:19:42
回答 2查看 194关注 0票数 5

即使安装了command -v c-blosc,使用它也不会返回任何结果

c-blosc将自己描述为一个压缩库,所以它不是命令

我试过的几件事

代码语言:javascript
复制
% c-blosc
zsh: command not found: c-blosc
where c-blosc
c-blosc not found
brew install c-blosc
...
Warning: c-blosc 1.21.0 is already installed and up-to-date.
To reinstall 1.21.0, run:
  brew reinstall c-blosc

% brew info c-blosc
c-blosc: stable 1.21.0 (bottled)
Blocking, shuffling and loss-less compression library
https://blosc.org/
/usr/local/Cellar/c-blosc/1.21.0 (10 files, 1.7MB) *
  Poured from bottle on 2021-07-07 at 23:44:40
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/c-blosc.rb
License: BSD-3-Clause
==> Dependencies
Build: cmake ✘
==> Analytics
install: 312 (30 days), 1,190 (90 days), 3,168 (365 days)
install-on-request: 249 (30 days), 998 (90 days), 2,263 (365 days)
build-error: 0 (30 days)
brew search c-blosc 
==> Formulae
c-blosc ✔

以下是

代码语言:javascript
复制
if [ brew info c-blosc 2>&1 >/dev/null ]; then
    echo "Installed"
else
    echo "Nope"
fi

代码语言:javascript
复制
if [ brew search c-blosc 2>&1 >/dev/null ]; then
    echo "Installed"
else
    echo "Nope"
fi

尽管我已经安装了Nope,但两者都打印它

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-13 05:41:02

根据https://apple.stackexchange.com/q/145437的说法,你可以

代码语言:javascript
复制
brew info c-blosc

它将打印安装位置等信息。您可以使用相关命令,如search

代码语言:javascript
复制
brew search c-blosc

唯一显式返回丢失公式的失败代码的记录在案命令是

代码语言:javascript
复制
brew --prefix --installed c-blosc

它没有具体的输出,所以您可以这样做。

代码语言:javascript
复制
if brew --prefix --installed c-blosc 2>/dev/null; then
    echo "Installed"
else
    echo "Nope"
fi
票数 3
EN

Stack Overflow用户

发布于 2021-07-14 07:09:18

由于c-blosc包不包含任何命令,因此您将无法找到是否使用以下任何一种方法安装它:

代码语言:javascript
复制
command c-blosc
type c-blosc

包实际上提供了一个动态链接库和一个头文件,您可以通过使用以下命令列出包的内容来查看该文件:

代码语言:javascript
复制
brew ls c-blosc

/usr/local/Cellar/c-blosc/1.21.0/include/ (2 files)
/usr/local/Cellar/c-blosc/1.21.0/lib/libblosc.1.21.0.dylib
/usr/local/Cellar/c-blosc/1.21.0/lib/pkgconfig/blosc.pc
/usr/local/Cellar/c-blosc/1.21.0/lib/ (3 other files)

现在,homebrew/usr/local/lib中创建符号链接,让您将程序链接到-让我们看看:

代码语言:javascript
复制
ls -l /usr/local/lib/*blosc*
lrwxr-xr-x  1 mark  admin  50 14 Jul 07:52 /usr/local/lib/libblosc.1.21.0.dylib -> ../Cellar/c-blosc/1.21.0/lib/libblosc.1.21.0.dylib
lrwxr-xr-x  1 mark  admin  45 14 Jul 07:52 /usr/local/lib/libblosc.1.dylib -> ../Cellar/c-blosc/1.21.0/lib/libblosc.1.dylib
lrwxr-xr-x  1 mark  admin  39 14 Jul 07:52 /usr/local/lib/libblosc.a -> ../Cellar/c-blosc/1.21.0/lib/libblosc.a
lrwxr-xr-x  1 mark  admin  43 14 Jul 07:52 /usr/local/lib/libblosc.dylib -> ../Cellar/c-blosc/1.21.0/lib/libblosc.dylib

因此,无论版本如何,其中最通用的测试是libblosc.dylib,因此我将使用它作为测试:

代码语言:javascript
复制
if [ -e /usr/local/lib/libblosc.dylib ] ; then echo "Installed" ; fi

请注意,您可以更显式地测试该文件--现有的和作为一个带有if [ -L ... ]的符号链接--但是如果liblosc是通过某种非符号链接方法安装的,例如可以从源中将实际库复制到该位置而不是创建一个符号链接,则可能无法进行测试。

另一个可以使用的可选命令如下所示,它显示了在何处安装了给定的自制包:

代码语言:javascript
复制
brew --prefix --installed c-blosc
/usr/local/opt/c-blosc
echo $?
0

相对于:

代码语言:javascript
复制
brew --prefix --installed MadeUpNonExistentPackage
Error: No available formula with the name "madeupnonexistentpackage".
echo $?
1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68333411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档