@megamage
Люблю грозу в начале мая!

Как разобраться с терминалом linux? Что детально делает эта команда?

Добрый день. Есть такая команда
sudo apt-add-repository -y ppa:brightbox/ruby-ng;
sudo apt-get update;
sudo apt-get -y install curl;
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -;
sudo apt-get -y install nodejs;
sudo npm i -g gulp rimraf npm-check-updates bower;
sudo chown -R $USER:$(id -gn $USER) /home/$USER/.config

для удобства, я разбил её построчно.

Начнем по порядку.
1) sudo apt-add-repository -y ppa:brightbox/ruby-ng
sudo apt-add-repository получается делает так, чтобы руби обновлялся не из репозитория ubuntu, а из ppa:brightbox/ruby-ng? Я правильно понимаю? Если да, то откуда он берет этот пакет? Где он находит brightbox?
PPA это получается пакет? Просто пакет который скачивается?
флаг -y. Узнал командой apt-add-repository --help зачем он нужен
-y, --yes Assume yes to all queries
То есть флаг говорит "да" всем запросам? Что? Как это понять?

2) sudo apt-get update
apt-get update получается обновляет все скаченные пакеты на пк. Правильно?

3) sudo apt-get -y install curl
apt-get -y install устанавливает из репозитория ubuntu библиотеку curl.
Тоже флаг -y?

4) curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
команда библиотеки curl. -sL это то же что и -s -L ?

Да и вообще что делает curl? обновляет путь у репозитория в репозиториях Ubuntu к определённому пакету?
Если скачивать nodejs через apt-get то там старая версия, а через curl мы меняем ссылку на другую версию получается? Или как? Почему тогда мы не указали название пакета nodejs а просто ссылку? откуда он знает, что нужно обновить именно у nodejs?
| sudo -E bash - что означает эта команда? | это типо "или"? Зачем он?

И вообще прав ли я, когда говорю репозиторий ubuntu где лежат все репозитории? Как его посмотреть?

4) sudo apt-get -y install nodejs
Скачивает по новому пути nodejs, а вместе с ним и npm. Верно?

5) sudo npm i -g gulp rimraf npm-check-updates bower
Так как мы скачали nodejs, теперь у нас доступен npm. с помощью него мы устанавливаем глобально пакеты

6) sudo chown -R $USER:$(id -gn $USER) /home/$USER/.config
Эта команда изменяет владельца? Зачем это нужно? Как она работает? Объясните пожалуйста..

Я только начинаю разбираться в linux и просьба не забрасывать меня помидорами. Заранее огроооооооооооооооомное спасибо!!!!!!!!
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
sudo apt-add-repository -y ppa:brightbox/ruby-ng
В debian-подобных дистрибутивах есть возможность создавать и подключать нестандартные репозитории с пакетами, они называются PPA. Команда apt-add-repository добавляет в систему репозиторий brightbox/ruby-ng. Ключ -y означает автоматически отвечать Да на все вопросы команды.

Однако я не знаю, зачем это нужно, ведь дальше ruby мы нигде не устанавливаем и не используем.

sudo apt-get update
Эта команда обновляет информацию обо всех пакетах из всех репозиториев. То есть подтянет версии для пакетов из репозитория brightbox/ruby-ng. Обратите внимание, что это только загрузка сведений о пакетах и их версиях, а реальное обновление может быть только после apt-get upgrade или apt-get install.

sudo apt-get -y install curl
Устанавливаем программу curl. Скорее всего она будет установлена из репозитория ubuntu. Ключ -y также означает «Установить без всяких вопросов и предупреждений».

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
Здесь curl загружает установочный скрипт для node 10 и передаёт его интерпретатору bash для выполнения. Ключ -s означает, что curl не должен выводить никаких своих сообщений (иначе bash попытается их выполнить), ключ -L означает разрешить обработку HTTP-редиректов при загрузке скрипта. Весь текст скрипта передаётся оператором «|», который называется «пайп».

В установочном скрипте есть команды для подключения ppa-репозитория для Node 10 для конкретно вашего дистрибутива.

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

sudo apt-get -y install nodejs
Устанавливаем Node и NPM из нового репозитория.

sudo npm i -g gulp rimraf npm-check-updates bower
С помощью установленного NPM глобально устанавливаем пакеты gulp, rimraf, npm-check-updates и bower.

Не знаю, зачем в 2019 году может понадобиться bower, но ладно. gulp и rimraf я бы тоже ставил локально в проект, но если их много, то глобальная установка сэкономит место на диске. Также крайне не рекомендую при работе с npm и node использовать sudo. Если возникает проблема с правами при глобальной установке пакетов, то лучше заранее правильно настроить систему.

sudo chown -R $USER:$(id -gn $USER) /home/$USER/.config
Эта команда восстанавливает владельца на директорию .config и лежащие в ней файлы и поддиректории. Затрудняюсь сказать, зачем это нужно. Возможно права повреждаются предыдущей командой sudo npm.

И вообще прав ли я, когда говорю репозиторий ubuntu где лежат все репозитории? Как его посмотреть?

При установке пакеты ищутся во всех установленных репозиториях. Из того, где версия новее, они и скачиваются. Поэтому репозиторий для node 10 замещает версию node из родного репозитория ubuntu.

Подробнее о репозиториях и как посмотреть, какие из установлены, можно здесь.

Посмотреть, какие пакеты входят в репозитории ubuntu, можно здесь.

Также в репозитории есть программа synaptic, где вы можете посмотреть и установить или удалить доступные в вашей системе пакеты.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
Сись админ
1. Добавляет репозиторий (PPA, источник) с программами. Скачивается файлик с информацией о репозитории, в котором лежат программы;
2. Обновляет список пакетов, включая те, что доступны в новом репозитории;
3. curl - это типа кусочек браузера, если своими словами. В данном случае, похоже, он скачивает скрипт и запускает его от рута. Это опасно;
4. Просто скачивает и устанавливает node. Реп выбирается тот, где программа новее и в принципе там есть;
5. Да.
6. Меняет владельца файла на пользователя. Это нужно, чтобы у него был доступ к файлу (на чтение настроек, например, и на запись).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Leningrad Media Санкт-Петербург
от 60 000 до 80 000 руб.
Studio Evolution Тверь
от 60 000 до 150 000 руб.
UMA.TECH Москва
от 90 000 до 160 000 руб.
24 июн. 2019, в 18:52
40000 руб./за проект
24 июн. 2019, в 18:44
5000 руб./за проект
24 июн. 2019, в 17:46
5000 руб./за проект