“ImportError: libssl.so.1.0.0: не может открыть файл общего объекта: Никакой такой файл или каталог” во время установки Битовой маски

Скажем, у Вас есть следующий файл:

testline1
testline2
NETWORKLIST
line with spaces, just in case
and with    tabs
+++NETWORKLIST+++
thisisrelevant
thistoo

+++ANOTHERSECTION+++
someirrelevanttext

И Вы хотите извлечь только раздел NETWORKLIST как это:

+++NETWORKLIST+++
thisisrelevant
thistoo

Затем Ваше sed заклинание, чтобы сделать это:

sed -n '/+++NETWORKLIST+++/,/^+/ { x; /^$/! p; }' testfile

Disection команды sed

Это - шаблон диапазона адресов:

/+++NETWORKLIST+++/,/^+/

Это будет соответствовать всем строкам, запускающимся в +++NETWORKLIST+++ и окончание в строке, запускающейся с +.

Затем прибывает команды:

{ открывает список команд (он обычно не замечается, поскольку большинство пользователей sed на самом деле использует единственную команду после соответствия).

x; обменивается содержанием пространства хранения и пространства шаблона (см., что Понятие 'Содержит пространство' и 'Пространство шаблона' в sed).

Затем мы хотим распечатать непустые строки: /^$/! p;

Кроме того, близкий список команд: }

Почему это обменивается? Ну, после соответствия диапазону нас оставляют с этим входом:

+++NETWORKLIST+++
thisisrelevant
thistoo

+++ANOTHERSECTION+++

Но мы не интересуемся заголовком раздела для следующего раздела.

Таким образом мы говорим sed помещать каждую строку на пространство хранения.

Если файл имел раздел ближе такой как ---NETWORKLIST--- мы просто сделали бы:

sed -n '/+++NETWORKLIST+++/,/^-/ p'

Или даже это, если мы не хотим финализатор раздела:

sed -n '/+++NETWORKLIST+++/,/^-/ {/^-/d; p}'

Но если бы мы пробуем это за вход OP, мы освободили бы заголовок раздела от соответствующего раздела.

Путем выполнения x на каждом шаге мы эффективно пропускаем последнюю строку диапазона:

  1. PatternSpace =+++NETWORKLIST+++, HoldSpace =^$. Exchange их
  2. PatternSpace =thisisrelevant, HoldSpace =+++NETWORKLIST+++. Exchange их, печать PatternSpace
  3. PatternSpace =thistoo, HoldSpace =thisisrelevant. Exchange их, печать PatternSpace
  4. PatternSpace =^$, HoldSpace =thistoo. Exchange их, печать PatternSpace
  5. PatternSpace =+++ANOTHERSECTION+++, HoldSpace =^$. Exchange их.
  6. Там больше не вводится

Оставьте комментарий, если это неясно, или я использовал неправильное название sed понятия.

2
02.11.2014, 16:46
2 ответа

Эта версия файла libssl.so.1.0.0 , похоже, недоступна в стандартной системе F20. Вот что я получаю, когда ищу его на своем ноутбуке:

$ repoquery -qf */libssl.so.1.0.0
hipchat-0:2.2.1163-1.x86_64
hipchat-0:2.2.1163-1.i386

Он доступен только из этого стороннего пакета, hipchat . Таким образом, приложение, которое вы пытаетесь создать, похоже, было написано / настроено для использования этой конкретной версии этой библиотеки.

У меня возникнет соблазн задать этот вопрос на основном сайте проекта, поскольку это, похоже, проблема с исходным кодом.

2
27.01.2020, 22:13

Сначала нужно установить openssl-libs...

После этого libssl.so.1.0.0 должен быть в /usr/lib

.
0
27.01.2020, 22:13

Теги

Похожие вопросы