Существует ли Вкусная Опция, которая Создает Ошибку, если Пакет отсутствует?

for file in /path/to/dir/*; do
  sed -i s/nullptr/NULL/g "$file"
done

Это не влияет на подкаталоги, все же.

Редактирование 1

Более быстрое решение (с GNU):

find /path/to/dir -type f -print0 | xargs -0 sed -i s/nullptr/NULL/g

Это влияло бы на подкаталоги (и dotfiles), также. Добавить -maxdepth 1 если это не требуется.

8
31.10.2014, 23:36
3 ответа


Я думаю, что Gnome более универсален, когда KDE больше подходит для настольных ПК. Кроме того, я думаю, что если мы скажем однажды «мы делаем СВОБОДНЫЙ DE» мы должны придерживаться его. Все помнят переход с OpenOffice на LibreOffice. Для этого была причина.
Я думаю, что ребята из KDE Teem делают потрясающую работу. Но можете ли вы себе представить, что обе группы начинают сотрудничать и дают нам платформу с оболочками для настольных и мобильных телефонов/планшетов/ноутбуков с потрясающими библиотеками под ними;)

-121--20193-

Я попробовал lsof -p < pid python process > . Она включает в себя строку

python  1834 barmar    3u  sock    0,6       0t0 70994705 can't identify protocol

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

lsof | grep "can't identify protocol"

, чтобы найти все процессы, которые имеют порты, связанные, но не подключенные или прослушивающие. Если есть несколько, вы, вероятно, можете выяснить, какой из них, вероятно, будет использовать порт, о котором вы заботитесь.

Обратите внимание, что существуют другие способы перехода сокета в это состояние. При выполнении вышеуказанной команды был указан процесс mysql с длительным простоем. Это связано с тем, что mysqld закрывает незанятые клиентские подключения по истечении времени ожидания. mysql обнаруживает это при попытке отправить новый запрос и повторно подключается в это время. Но до тех пор в клиентском процессе все еще открыт старый сокет, но с ним не связано TCP-соединение.

-121--150774-

Я не знаю о вас, но вы можете спросить, установлен ли пакет с помощью rpm -q my_package... . Он выйдет с состоянием отказа, если какой-либо из пакетов отсутствует.

$ rpm -q abasdfasfeafseasfeasef bash coreutils utils-linux
package abasdfasfeafseasfeasef is not installed
bash-4.1.2-9.el6_2.x86_64
coreutils-8.4-19.el6.x86_64
package utils-linux is not installed
$ echo $?
1
$ rpm -q bash
bash-4.1.2-9.el6_2.x86_64
$ echo $?
0
0
27.01.2020, 20:11

Попробуйте использовать dnf вместо yum, это не удастся, если пакет недоступен, как раньше yum. В CentOS вы можете установить его через:

yum -y install epel-release && \
yum -y install dnf

Затем при отсутствующем пакете вы получите сообщение об ошибке:

dnf -y install foobar
Error: no package matched: foobar
4
27.01.2020, 20:11

Современные версии yum (yum -3.4.3 -133.el7+, ticket)предоставляют две опции, которые должны помочь в этом случае использования -:

skip_missing_names_on_install If set to False, 'yum install' will fail if it can't find any of the provided names (package, group, rpm file). Boolean (1, 0, True, False, yes, no). Defaults to True.

skip_missing_names_on_update If set to False, 'yum update' will fail if it can't find any of the provided names (package, group, rpm file). It will also fail if the provided name is a package which is available, but not installed. Boolean (1, 0, True, False, yes, no). Defaults to True.

Источник:руководство -страницы

Использование:

yum --setopt=skip_missing_names_on_install=False <commands-here>

13
27.01.2020, 20:11

Теги

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