Как установить Xfce из архива (исходный код) в OpenBSD без доступа в Интернет?

Вот пример того, как это можно сделать с sed :

srch_rng(){                      
        set     '[:blank:]' "$1" '\
';      sed -n " /^\(.*\n\)*[$1]*$2/,\$!{N
                s/^\(\([$1]*\)[$1]*[^$1].*\n\)\(\2[^$1]\)/\3/
                        s/^/$3/;D           
        };       /./!p;//!d;H;x
                 /^\n[$1]*/!h;s///p;t       
                s/\([$1]*\).*\n\1//;/^[$1]/p
                 //!q;x;s/\n.*//;h"
}

Это работает с обеими сторонами диапазона - до sed совпадает с шаблоном, указанным в качестве его первого аргумента относительно его stdin , который он будет сохранять в памяти до каждого встречного отступа верхнего уровня. После сопоставления своего первого аргумента он не сохраняет ничего, кроме отступа.

Перед тем, как найти соответствие, он работает в цикле вытягивания строки N ext, пытаясь s /// убрать все пространство шаблонов, если последняя строка вытянута in открывается с количеством пробелов, меньшим или равным тому же количеству пробелов, что и первая строка в его буфере, за которой сразу следует непустой символ, затем возвращается цикл, чтобы выяснить, соответствует ли она самой последней строке или должна попробуй еще раз.

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

Таким образом, он сохраняет свои буферы как текущие (и пустые) , насколько это возможно, и не останавливается, если между отступами верхнего уровня нет очень длинных промежутков, прежде чем он сможет соответствовать шаблону. Он также не заботится о промежуточных пустых строках - печатаемая информация может охватывать границы абзаца, но не перекрывать отступы верхнего уровня.

Так, например, если я просто введу srch_rng Cell , он будет печатать из строки Cell 13 до следующей Cell . Он также сделает это, если я укажу ESSID в качестве первого аргумента, но если я это сделаю:

srch_rng '.*selma'

... он напечатает ...

Cell 14 - Address: 90:F6:52:90:C2:2F
                    Channel:6
                    Frequency:2.437 GHz (Channel 6)
                    Quality=21/70  Signal level=-89 dBm  
                    Encryption key:on
                    ESSID:"selma"
          Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                    9 Mb/s; 12 Mb/s; 18 Mb/s%                

Требуется . * потому что по умолчанию он соответствует только первым непустым символам в строке. И, как вы можете видеть, для каждой печатаемой строки он удаляет только начальные пробелы, которые он сохранил в буфере, из каждой - что помещает первую строку, напечатанную в крайнем левом углу, а все остальные с равномерным отступом под ней.

2
30.04.2018, 01:23
1 ответ

Сводка :Установите предварительно -собранный xfceпакет.


К сожалению, невозможно обойти тот факт, что вам нужно загрузите Xfce и все необходимые зависимости для его сборки , если вы очень хочу установить из исходников.

В OpenBSD в идеале следует установить пакет xfce. Это «метапакет», который устанавливает все необходимое для работы Xfce рабочий стол запущен и работает на OpenBSD.

$ doas pkg_add xfce

В обычной системе OpenBSD это приведет к установке 148 отдельных пакетов, необходимых для запуска Xfce.

Для минимальной рабочей среды Xfce:вместо этого вы можете установить следующие пакеты:

  • xfce4 -панель
  • xfce4 -сеанс
  • xfce4 -настройки
  • xfconf
  • xfdesktop
  • тунар
  • xfwm4

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


Для сборки из исходного кода на OpenBSD лучше всего собрать meta/xfceпорт. Вы можете получить все необходимые источники распространения для этого порта в один раз, когда у вас есть хорошее подключение к Интернету, а затем строить, когда вы иметь время. Обратите внимание, что это, вероятно, потребует от вас получить гораздо больше data, чем установка бинарных пакетов, так как он также включает получение источников дистрибутива для зависимостей сборки.

Чтобы получить все исходники для всех портов, необходимых для построения порта meta/xfce, я предполагаю, что у вас есть проверенная файловая иерархия портов в/usr/portsи что вы в целом знакомы с тем, как создавать порты на OpenBSD . Затем вы должны использоватьDistributed Построитель портов , dpb, чтобы получить все необходимые файлы dist -:

$ doas /usr/ports/infrastructure/bin/dpb -F 4 meta/xfce

Это позволит получить все необходимые dist -файлы, по четыре за раз.

После того, как вы все загрузили, вы можете собрать и установить Xfce. вне линии -с

$ cd /usr/ports/meta/xfce
$ doas make install

Вместо того, чтобы делать это на основном мета-порте, вы также можете сделать это на семи портах, необходимых для установки минимального рабочего стола Xfce (, перечисленных выше, но вам нужно будет добавить префикс к каждому один из них сx11/xfce4/).


Если вам действительно необходимо выполнить сборку из собственных исходных кодов Xfce, например, если это более новая версия программного обеспечения, то я настоятельно рекомендую вам связаться с Ландри Брейем (, который является текущий сопровождающий порта ),и сотрудничайте с ним, чтобы обновить порт (и любые зависимости, которые могут потребовать настройки для новой версии Xfce ). Его контактные данные можно найти по адресу

.
$ cd /usr/ports/meta/xfce
$ make show=MAINTAINER
1
27.01.2020, 22:18

Теги

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