Скрипт установки должен быть запущен как определенный (постоянный) пользователь, но должен создать системный каталог

Я сказал бы что самое простое это, чтобы просто использовать rename команда, которая распространена на многих дистрибутивах Linux. Существует две общих версии этой команды, так проверьте ее страницу справочника для нахождения, какой Вы имеете:

## rename from Perl (common in Debian systems -- Ubuntu, Mint, ...)
rename 's/^TestSR/CL/' *

## rename from util-linux-ng (common in Fedora systems, Red Hat, CentOS, ...)
rename TestSR CL *

Если Вы хотите использовать версию из util-linux-ng в системе Debian, это доступно под именем rename.ul

1
26.12.2013, 10:03
3 ответа

Попытайтесь искать любую справку для setup сценарий. Возможно, это шло с a README файл или это принимают a -h переключатель (проверяют выполнение ./setup -h). Довольно правильно написанный сценарий должен позволить Вам изменять каталог установки. Можно сделать что-то как

./setup --prefix=/home/zahir/

или подобный (в зависимости от того, что Вы находите из справки сценария).

Это установит comsol в Вашем корневом каталоге, в который можно затем переместиться /usr/local использование sudo.

Обновление

Вы сообщили, что вышеупомянутый метод работал, но comsol команда не распознана. Это просто означает, что необходимо добавить местоположение comsol двоичный файл к Вашему PATH переменная.

Давайте примем это comsol был установлен в /usr/local/comsol35, просто необходимо добавить /usr/local/comsol35/bin к Вашему PATH переменная. (Фактический путь в Вашей системе может варьироваться).

Добавить путь к Вашему PATH переменная:

Просто выполните следующее:

export PATH=$PATH:/usr/local/comsol35/bin

Это изменится PATH на Вашей текущей сессии только. Для внесения изменения постоянным можно сделать:

echo 'export PATH=$PATH:/usr/local/comsol35/bin' >> ~/.bashrc

Очень важно использовать одинарные кавычки, а не двойные кавычки для вышеупомянутой команды так, чтобы $PATH добавляется буквально к Вашему .bashrc и не интерполированный. Необходимо также удостовериться, что Вы используете >> вместо > для не уничтожения содержания Вашего .bashrc.

После выполнения echo команда, comsol команда должна быть доступной от любого нового терминала, который Вы открываете. Если Вы хотите внести изменение, вступают в силу в терминале, который Вы раньше выпускали echo команда, необходимо работать

. ~/.bashrc

(да команда составляет только период),

1
27.01.2020, 23:53
  • 1
    @Ein5t3in спасибо. Я мог сделать это. Проблема после установки не распознана команда "comsol", который согласно их documentaiton должен быть командой для запуска программы. Infact я пытаюсь выполнить его с matlab. Не устанавливая его этот путь без поднятого полномочия ни одно из значения по умолчанию не управляет работой. Это означает, что я нахожусь в вечной работе вокруг :(. Какая-либо другая идея? –  user1188038 22.08.2013, 16:39
  • 2
    @user1188038 обновляется. Посмотрите, помогает ли это. –  Joseph R. 22.08.2013, 16:46
  • 3
    @user1188038 IIRC, comsol может также потребовать, чтобы некоторые пакеты Java запустились правильно. –  Joseph R. 22.08.2013, 16:58
  • 4
    , но у меня есть проблема при попытке выполнить его с matlab. обычно, каждый пишет сервер консоли matlab, и это запускается. –  user1188038 22.08.2013, 17:45
  • 5
    вместо команды я могу сделать ручное соединение.Большое спасибо.... Я предполагаю, что должен буду жить с ним на данный момент. Я не уверен почему дело обстоит так :(. Это работало как очарование в окнах. Я просто переместил в Linux на прошлой неделе :( –  user1188038 22.08.2013, 17:55

Существуют некоторые команды, которые не могут быть выполнены через sudo такой как, по-видимому, Вашsudo ./setup. Я обычно становлюсь корнем в оболочке следующим образом:

опция 1 - не может поддерживаться в Вашей системе

$ sudo -i

опция 2 - должна быть широко поддержкой

$ sudo su -

После того как Вы выполнили одну из этих 2 команд, Вы являетесь эффективно корневыми в той оболочке и можете выполнить Ваш ./setup команда. Удостоверьтесь, что Вы изменяете каталоги (cd) назад туда, где Ваш ./setup программа запускалась от.

Выполненный как корень и zahir?

Если необходимо выполнить установку как сами, zahir, можно сделать каталоги, которые необходимы, чтобы сделать установку, так, чтобы zahir может установить в них заранее и затем работать ./setup как zahir.

$ sudo mkdir -p /usr/local
$ sudo chown -R zahir /usr/local
0
27.01.2020, 23:53
  • 1
    Проблема OP состоит в том что setup сценарий на самом деле ожидает, что пользователю, устанавливающему его, позвонят zahir в то время как этому нужны полномочия пользователя root (или по крайней мере способность создать каталог в /usr/local). –  Joseph R. 22.08.2013, 16:31
  • 2
    @JosephR. - благодарит указать на это. Хм... Спасибо Joseph –  slm♦ 22.08.2013, 16:33
  • 3
    для очистки его. Это - действительно проблема. ре –  user1188038 22.08.2013, 16:34
  • 4
    Ваше обновление: Это было бы предложением –  Joseph R. 22.08.2013, 16:38
  • 5
    @JosephR. - да я не видел его предложения, фокусируясь только на моем окне. Его не упоминал, как, просто что Вы могли сделать это. Учитывая OP в новинку для Linux, шоу шахты, как сделать фактические команды. Ответ –  slm♦ 22.08.2013, 16:41

Предположение Mu то, что setup сценарий читает имя пользователя из Вашей среды. Это, вероятно, проверяет один из $USER или $USERNAME переменные среды (это Вар по умолчанию, можно проверить их значение путем выполнения echo $USER в Вашем терминале). Это, вероятно, содержит строку как

current_user=$USERNAME

Попытайтесь искать файл $USER:

grep USER setup

Необходимо затем смочь изменить его на zahir, что-то как:

current_user=zahir

Если бы Вы могли бы отправить сценарий где-нибудь, я был бы рад взглянуть и дать Вам более определенный ответ.

0
27.01.2020, 23:53
  • 1
    файл настройки является exe., таким образом, я боюсь, что я не уверен, где найти сценарий. –  user1188038 22.08.2013, 16:59
  • 2
    @user1188038, что Вы имеете в виду exe? Из чего вывод file setup? Это должен просто быть исполняемый сценарий, другими словами, текст. –  terdon♦ 22.08.2013, 17:01

Теги

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