bash: pig: command not found

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

Во-первых, я создал следующий сценарий emacs lisp (назовем его bibsort.el):

( defun bibsort()
    ( bibtex-sort-buffer )
    ( save-buffer )
)

Он сортирует любой файл bibtex по имени ключа и затем сохраняет его. Вы можете вызвать сценарий в пакетном режиме из командной строки. Я пошел дальше в написании сценария оболочки, чтобы вызывать его для каждого файла bibtex, который Менделей переупорядочил (со свежими ссылками или без них), проверив код возврата из «git diff filename » (это экономит время, не запускать код Lisp без необходимости для файлов, которые не изменились).

Вот сценарий оболочки (назовем его в воображении bibsort.sh), который предполагает, что и файлы bibtex, и сценарий lisp находятся в текущем каталоге:

#!/bin/bash

bibliobasher() {

    IFS=$( echo -en "\n" )
    BIBFILES=*.bib

    for bibfile in $BIBFILES
    do
        git diff --quiet "$bibfile" 2> /dev/null
        if [ $? = 1 ]; then
            emacs --batch -l bibsort.el "$bibfile" -f bibsort
        fi
    done
}

bibliobasher

Просто запустите его (после установки прав доступа к файлам, если необходимо) перед каждым git commit:

chmod a+x bibsort.sh
./bibsort.sh
git commit ...

Он не коснется дополнительных строк, отличных от bibtex, добавленных Mendeley, и должен работать с любой установкой Unix / Linux с emacs. Он также работает на консоли GIT в Windows (которую я использую), но вам придется установить сборку emacs MINGW отдельно.

На мой взгляд, коммиты git теперь работают элегантно и экономично. Надеюсь, это поможет ...

1
10.04.2019, 03:51
1 ответ

Выяснилось, что занесенные в черный список модули были явно загружены одной из служб Systemd/Network Manager:pullin-bcm43xx-firmware.service.

Я просто отключил подозрительную службу с помощью вызова systemd:
systemctl disable pullin-bcm43xx-firmware.service
и перезагрузил..и вуаля..драйверы b43 больше не грузятся; ssb, b43, b43legacy, mac80211; присутствует только wl. Счастливый конец.. пока.

Как я нашел pullin-bcm43xx-firmware.service? Немного детективной работы. Путем поиска в системном журнале journalctl -b, поиска b43. Я нашел эту подозрительную строку:
install_bcm43xx_firmware_wrapper/etc/systemd/system/multi-user.target.wants/pullin-bcm43xx-firmware.service: Downloading b43 firmware
сразу после запуска Network Manager. Поиск install_bcm43xx_firmware_wrapperв /etcдал /etc/systemd/system/multi-user.target.wants/pullin-bcm43xx-firmware.service... а остальное вы уже знаете.

Что беспокоит, я нашел его в основном по счастливой случайности. Если бы этот скрипт не упоминал b43и его имя, я мог бы делать любые ссылки. Беспокоит отсутствие формальной лог-трассировки того, какие драйверы были загружены, когда и кем:(

Я также узнал, что черный список модулей — это немного неправильное название. Как пояснил мне Арвиджаар:

Blacklist only prevents loading of module due to hardware autodetection (strictly speaking, it tells modprobe to ignore internal aliases provided by module). It does not prohibit loading of module by any other means (explicit modprobe, install line in modprobe.conf, explicit alias in modprobe.conf).

Ядро должно иметь надлежащее средство внесения в черный список!

0
28.01.2020, 00:16

Теги

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