В зш самым естественным, я думаю, было бы:
echo "ultimate: ${@[$#]}"
echo "ultimate: ${@[-1]}"
echo "penultimate: ${@[-2]}"
echo "penultimate: ${@[$(($# - 1))]}"
Допустим, вам нужна версия libevent 42.1.
Если в вашем менеджере пакетов установлен libevent версии 42.5, установите его. Нет необходимости собирать его из исходников. Чтобы создать программное обеспечение с помощью libevent, вам необходимо установить соответствующие пакеты разработки; libevent -dev для дистрибутивов на основе.deb -, libevent -devel для дистрибутивов на основе RPM -.
Если ваш менеджер пакетов имеет только libevent версии 40.3, вам также необходимо собрать libevent из исходного кода (из версии выше 42.1 ).
Рекомендация :Установите все, что вы собираете из исходного кода, в/usr/local
(набор PREFIX
перед выполнением ./configure
, или прочитайте документацию, если этот пакет делает это по-другому ). Таким образом, то, что вы создаете сами, и то, что устанавливает ваш менеджер пакетов, не конфликтует. Я использую stow
и для этого, так что у меня может быть несколько версий.
is there a chance that they too will be outdated
Конечно, "шанс есть".Единственный способ узнать это — зайти в менеджер пакетов и посмотреть. И это может быть хорошей возможностью указать вашему менеджеру пакетов на более новую версию, если она существует вышестоящей.