Каков настоящий и правильный способ установки чего-либо в Ubuntu? [закрыто]

Я знаю, что мне нужно кое-что получить, но я прошу это для двоичных файлов, которых нет, или тех, которые мне нужны Последняя версия. Каждый раз, когда я пытаюсь установить эти двоичные файлы в Ubuntu, я получаю разные ответы. Конечно, я могу просто вставить корзину в / bin или в каталоги, которые уже есть в моем PATH, но многие приложения заполнены другими файлами, так что это не лучший способ. Я часто вижу инструкции, говорящие мне добавить папку приложения в PATH, но что произойдет, если я установлю около 100 приложений с этой техникой? Разве моя переменная PATH не станет большой и беспорядочной? Кроме того, я бы передавал этот PATH каждому открытому приложению, я не считаю это лучшим способом установки чего-либо в Linux.

Итак, какой путь правильный? Кроме того, если это как-то связано с PATH, что правильный способ добавления путей к PATH? Я всегда вижу множество вариантов и запутываюсь.

Я хотел бы покончить с этим раз и навсегда, потому что я устал устанавливать вещи по-разному, и я хотел сделать это правильным и наиболее элегантным способом.

2
задан 31 October 2016 в 08:39

2 ответа

Цель переменной ПУТИ

PATH предназначен для Вашей оболочки - она говорит оболочку, где команды, которые Вы вводите, как предполагается, живут. Хороший пример этого был на поле OpenSUSE, которое я когда-то имел. На Ubuntu можно ввести iconfig команда и удар пойдут, "о, я знаю, где это - я буду работать /sbin/ifconfig". Ну, на значении по умолчанию OpenSUSE PATH , не имеет /sbin добавленный к нему, таким образом, bash скажет "извините, я не знаю где ifconfig у меня нет записи такого файла". Таким образом, необходимо или работать /sbin/ifconfig (т.е. полный путь), или делают он умным способом - добавляет /sbin кому: PATH.

Хороший пример того, почему Вы хотели бы сделать, - при установке пользовательских сценариев или двоичных файлов. Скажем, Вы сохранили что-то в /opt/my_stuff папка, и Вы хотите только звонить my_command по имени. Ну, необходимо будет добавить /opt/my_stuff кому: PATH.

Как правильно добавить каталоги для СОЕДИНЕНИЯ КАНАЛОМ

Основная идея состоит в том, что Вы хотите добавить или присоединиться исходный $PATH с новым каталогом. Как Вы можете или не можете знать, объекты в PATH переменная разграничена с :. Вы также хотите export переменная, так, чтобы другие программы (дети Вашей оболочки) знали, где искать материал. Все это должно произойти в конце ~/.bashrc, так, чтобы при открытии оболочки и она считала Ваш ~/.bashrc конфигурация, это знает, где все расположено.

Вот пример от моего ~/.bashrc :

export PATH=$PATH:"/opt/microchip/xc16/v1.25/bin"

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

Что это имеет отношение к установке программного обеспечения

Если Вы устанавливаете файл от .deb архив или .run сценарий, Вы не должны волноваться о PATH часть. Это - обязанность автора программного обеспечения упростить процесс установки. Как правило, они настроят свою установку для сохранения материала в один из общих каталогов, которые уже принадлежат PATH: в сценарии установки будет сказано, "эй, установите это программное обеспечение в/usr/bin', и Вы сможете использовать его без дополнительного усилия.

Если авторы программного обеспечения устанавливают его где-нибудь, это обычно не находится в PATH, они должны будут настроить Ваш PATH переменная или Вы должны сделать это сами. В примере выше, каталог /opt/microchip был создан, когда я устанавливал IDE Микрочипа и компилятор. Их установщик автоматически поместил ту строку в мой ~/.bashrc. Я часто пишу сценарии, которые входят /opt , таким образом, я обычно упоминаю в инструкциях, что пользователи должны настроить PATH самостоятельно.

~ / каталог bin

Вы часто видите, что люди рекомендуют сохранить сценарий и другие типы программного обеспечения в ~/bin. Эта папка принадлежит Вам - Ваш пользователь, поэтому если Вы не хотите совместно использовать приложение с другими людьми на Вашей машине - это - то, куда Вы поместили его. Различие с /opt это, как я уже упомянул в нескольких местах, /opt нейтральная земля. Таким образом, если я как системный администратор хочу, чтобы оба моих семейства также имели доступ к приложению с их учетными записями - это - то, куда я поместил его.

До bash оболочка идет, она уже обрабатывает ~/bin быть добавленным к PATH для Вас. Другие оболочки, как /bin/sh , или tcsh или ksh не будет делать этого, поэтому иметь это в виду, если Вы будете работать над другой системой или захотите использовать другую оболочку в своей Ubuntu.

Обращение к определенным частям вопроса

Я часто вижу инструкции говорить мне добавлять папку приложения в ПУТИ, но что произошло бы, если я устанавливаю как, 100 приложений с этой техникой? РАЗВЕ моя переменная ПУТИ не стала бы большой и грязной?

Едва ли - что, как предполагается, входит в путь, каталоги. Если Вы обычно устанавливаете программное обеспечение в единственном каталоге (такой как ~/bin или /opt ) это потребует добавления только /opt. Если каждое программное обеспечение должно жить в своей собственной папке под /opt , затем да - необходимо было бы добавить каждый сингл один к PATH. То, что можно сделать, однако, является записью сценарий для добавления всех каталогов к PATH. Так, скажем:

$ for item in /opt/* ; do                                                                                      
 if [ -d "$item" ]; then
     PATH="$PATH:$item"
     echo "$VAR"
 fi
 done

И это может жить превосходное как функция в конце Вашего ~/.bashrc , так, чтобы каждый раз Вы открыли оболочку, все каталоги под /opt добавляются автоматически.

В моем примере я пишу много сценариев. Они все живут в ~/bin так как все они - просто единственные файлы, и нет никакой потребности в них жить в отдельных каталогах.

Кроме того, я передал бы этот ПУТЬ к каждому приложению, которое я открываю, я не рассматриваю это как лучший способ установить вещи в Linux.

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

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

Используя приложения для GUI без переменной ПУТИ

После того как вещь, которые не были покрыты здесь, .desktop файлы. Для помещения просто это версия Linux ярлыка Windows, но на стероидах. Позволяет говорят, что я имею, создают приложение для GUI в Python, и я хочу, чтобы он жил в /opt папка, но я не хочу, чтобы пользователь назвал его из командной строки - я хочу, чтобы они использовали хороший и аккуратный настольный ярлык. Ну, это то, где .desktop файлы играют роль. Вот пример:

$ cat /home/xieerqi/.local/share/applications/vivaldi.desktop                                                  
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=周迅 mv - YouTube
Icon=vivaldi
Path=/home/xieerqi
Exec=/opt/vivaldi/vivaldi-bin --ppapi-flash-path --ppapi-flash-version --always-authorize-plugins --enable-npapi --no-first-run
StartupNotify=false
StartupWMClass=Vivaldi
OnlyShowIn=Unity;
X-UnityGenerated=true

В то время как vivaldi приложение живет счастливо в /opt никогда не будучи должен быть сосланным в PATH , Я могу использовать a .desktop ярлык для запуска его. Снова, необходимо было бы вручную создать один для каждого приложения, но поскольку можно предположить, что Linux имеет сценарии способы автоматизировать даже это.

Заключение

Таким образом, каков реальный и корректный способ установить программное обеспечение на Linux? Нет ни одного, точно так же, как нет пути в Windows или Mac OS X. Ваше Приложение Windows могло быть единственным .exe или папка с .exe и живой превосходный в C:\ папка. То же здесь - на Linux у Вас могут быть сценарий или целый пакет программного обеспечения, живого в /opt, или ~/bin или везде, где Вы выбираете. Выбор, конечно, должен некоторым расширяться быть выровненным по ширине. Вы хотите, чтобы приложение было доступно root только, Вам only , или совместно использованный? Вы хотите, чтобы это было доступно через просто его имя, или Вы хотите ввести в полном пути к приложению?

Дополнительная информация

5
ответ дан 2 December 2019 в 01:43

Правовая оговорка: То, что следует ниже, является моим личным мнением.

В Ubuntu, эти ~/.profile имеет:

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

, что означает, присутствует ли ~/bin каталог, добавьте это к эти PATH в запуске.

, Таким образом, нужно поместить все пользовательские исполняемые файлы в ~/bin каталог, это гарантирует:

  • Пригодность для обслуживания
  • Чистота
  • Пользователь, конкретный PATH

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

1
ответ дан 2 December 2019 в 01:43

Другие вопросы по тегам:

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