нахождение двоичных файлов/файлов/библиотек не в Пути — конкретно gcj

Что относительно того, чтобы использовать сетевую начальную загрузку? Относительно легкий установить. Google начальная загрузка PXE

2
задан 17 January 2010 в 16:33
3 ответа
  1. Да, это - плохая идея из соображений безопасности. Злонамеренный сценарий или программа или простая ошибка могли быть настоящей проблемой.

  2. whereis ищет очевидные места как /bin, /usr/bin и другие. См. страницу справочника раздел FILES

Можно использовать locate если это доступно или find иначе:

locate gcj

или

find / -name gcj
0
ответ дан 3 December 2019 в 12:23

(1). Существует ли способ добавить ВСЕ, что я читал/выполнял разрешение в свой путь? Дополнительный вопрос, действительно ли это - плохая идея?

... это - плохая идея из соображений безопасности.

(2). whereis только ищет мой путь? Разве существует ли некоторый эквивалент для нахождения файлов/каталогов, в которых я нуждаюсь, не имея необходимость искать ВЕСЬ хост и получая доступ запрещен для любого каталога?

Вы могли использовать, располагаются (или glocate доступный в findutils от OpenCSW) с-r опцией, которая позволяет использовать регулярные выражения: glocate -r /gcj$

(3). Существует ли способ, которым я могу знать наверняка, если библиотека/двоичный файл определенно не доступна по сравнению только с не в моем пути?

glocate может сказать Вам это, предположив это gupdatedb был недавно выполнен.

(4). Существует ли способ сказать, специально для gcc, если gcj доступен?

Лучший способ идти об этом состоит в том, чтобы просканировать установленные пакеты. Список установленных файлов находится в /var/sadm/install/contents.

(5). Я могу скомпилировать gcj в свой пользовательский каталог, не имея необходимость компилировать все gcc с ним?

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

(6). Существует ли (универсальный) путь, при создании двоичного файла, для установки флага компиляции или make-файла для контакта с какими-либо зависимостями, поскольку это находит их вместо простого сбоя?

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

(7). Типичный пользователь на ситуации общего хоста имеют способность пользоваться библиотекой пакета ОС для получения пакетов на уровне пользователя?

Что делает Вы подразумеваете, получают пакеты? Если то, что Вы хотите, должно извлечь содержание .pkg файла, можно использовать команду pkgtrans, как это: pkgtrans foo.pkg ./ all
Однако существует также возможность выполнения чего-то как pbuilder, который создает chroot среду, в которой Вы делаете свою компиляцию, а также установки пакета, все в корневом каталоге.

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

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

Это - также хорошая идея использовать некоторую платформу сборки, такую как САРГАН, который делает все правильные вещи и удаляет много раздражений: это проверяет зависимости времени изготовления, загружает tarballs, проверенные контрольные суммы, извлечения, применяет патчи если таковые имеются, настраивает, создает, устанавливает и делает пакет, и можно указать все в единственном Make-файле. Обучение использовать такую платформу требует небольшого количества времени, но если Вы склонны создавать пакеты сами, время тратят на изучение, окупится быстро.

2
ответ дан 3 December 2019 в 12:23

1: Никто не делает это-> плохая идея.

2 + 3: верный способ:

pkginfo | grep -i gcj         # (Solaris specific)
find / -name gcj 2>/dev/null

4: Не знать.

5: Вероятно, и это - очевидно, большой физический труд.

6: Нет. В Make-файле можно просто добавить для СОЕДИНЕНИЯ КАНАЛОМ любых каталогов, которые обычно содержат gcj (образованное предположение). Это не причинит никому боль.

7: Нет, это до администратора для установки пакета. Но Вы не должны быть администратором для извлечения файлов, содержавшихся в пакете к корневому каталогу:

pkgtrans my-gcj.pkg .     # (Solaris specific) converts package to a "filesystem format package" (i.e. directory tree)

Программное обеспечение редко будет применимо после такого вычитания (плохое владение, плохой путь, плохие пути к библиотеке, плохие пути файла конфигурации, никакой выполняемый сценарий установки, никакие проверенные предпосылки...). Такая операция также возможна не только на Солярисе, но и на большинстве других разновидностей Unix/Linux - использование их упаковочных инструментов.

0
ответ дан 3 December 2019 в 12:23

Теги

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