Я сделал скрипт, который делает это:
#!/bin/bash
# File path to watch
LOCK_FILE='/var/lib/dpkg/lock'
# tput escape codes
cr="$(tput cr)"
clr_end="$(tput el)"
up_line="$(tput cuu 1)"
CLEAN(){
# Cleans the last two lines of terminal output,
# returns the cursor to the start of the first line
# and exits with the specified value if not False
echo -n "$cr$clr_end"
echo
echo -n "$cr$clr_end$up_line"
if [[ ! "$1" == "False" ]]; then
exit $1
fi
}
_get_cmdline(){
# Takes the LOCKED variable, expected to be output from `lsof`,
# then gets the PID and command line from `/proc/$pid/cmdline`.
#
# It sets `$open_program` to a user friendly string of the above.
pid="${LOCKED#p}"
pid=`echo $pid | sed 's/[\n\r ].*//'`
cmdline=()
while IFS= read -d '' -r arg; do
cmdline+=("$arg")
done < "/proc/${pid}/cmdline"
open_program="$pid : ${cmdline[@]}"
}
# Default starting value
i=0
# Checks if the file is locked, writing output to $FUSER
while LOCKED="$(lsof -F p "$LOCK_FILE" 2>/dev/null)" ; do
# This will be true if it isn't the first run
if [[ "$i" != 0 ]]; then
case $(($i % 4)) in
0 ) s='-'
i=4
_get_cmdline # Re-checks the command line each 4th iteration
;;
1 ) s=\\ ;;
2 ) s='|' ;;
3 ) s='/' ;;
esac
else
# Traps to clean up the printed text and cursor position
trap "CLEAN False; trap - SIGINT ; kill -SIGINT $$" SIGINT
trap 'CLEAN $((128+15))' SIGTERM
trap 'CLEAN $((128+1))' SIGHUP
trap 'CLEAN $((128+3))' SIGQUIT
# Default starting character
s='-'
_get_cmdline
echo -n "$save_cur"
fi
# Prints the 2nd line first so the cursor is at the end of the 1st line (looks nicer)
echo
echo -n "$cr$clr_end$open_program"
echo -n "$up_line$res_cur$cr$clr_end[$s] Waiting for other package managers to finish..."
#echo -en "$cr$clr_end[$s] Waiting for other package managers to finish..."
#echo -en "\n$cr$clr_end$open_program$cr$up_line"
((i++))
sleep 0.025
done
CLEAN False
# This allows saving the script under a different name (e.g. `apt-wait`)
# and running it. It only imitates `apt-get` if it was launched as such
if [[ "${0##*/}" == 'apt-get' ]]; then
exec /usr/bin/apt-get "$@"
exit $?
fi
Сохраните это в /usr/local/sbin/apt-get. apt-get будет ждать, если другой экземпляр уже запущен.
В качестве альтернативы сохраните его как /usr/local/sbin/apt-wait, пример использования:
apt-wait && aptitude
, который будет запускать aptitude после текущий запуск процесса блокировки завершен.
Пример выполнения: во-первых, выполняется команда apt-get, например:$ sudo apt-get remove some_package
Затем на другом терминале запускается другая команда: $ sudo apt-get install some_other_package
дождитесь завершения первой команды, а затем выполните ее. Выход во время ожидания: [/] Waiting for other package managers to finish...
28223 : /usr/bin/apt-get remove some_package
Для электронной почты есть аддон thunderbird под названием Enigmail, который выполняет шифрование или подписание электронной почты и довольно хорошо интегрирован. Установите его из Центра программного обеспечения или с помощью sudo apt-get install enigmail.
Seahorse все еще существует (он называется «Пароли и ключи», если вы выполняете поиск в тире), но, похоже, потерял встроенную поддержку для (я думаю - у меня нет ключа GPG в этой системе для тестирования).
Этот поток дает синтаксис для подписания, шифрования, проверки и дешифрования текста в консоли с помощью gpg.
Этот поток объясняет, как добавить gpg-интеграцию в gedit, хотя я должен признать, что ожидал найти лучшую поддержку плагина для шифрования / подписи в обоих gedit и tomboy без очевидного успеха.
Вы можете интегрировать Seahorse с Nautilus, установив seahorse-nautilus. Это позволит вам зашифровать и дешифровать файлы и папки, щелкнув их правой кнопкой мыши.