Вопрос - Ответ По *Nix системам и сравнение с Windows

Предыдущие сообщения
7 декабря 2011
#1 MACTEP uid#646 Извините, надоело отвечать нубам и школоте, публикую часть вопросов и отвечаю на них! Задавайте свои вопросы будем вместе искать решение!

Что такое Зависимости (Dependency – англ., «Депенденсы» - слэнг) и зачем они нужны?
Практически каждой программе для корректной работы требуются библиотеки и ресурсы внешних приложений. Эти требования и называются Зависимостями. В Windows существует единая архитектура и единый стандартный набор библиотек, присутствующий в каждой системе. Поэтому многие программы опираются на этот стандартный набор и устанавливают только те дополнительные компоненты и библиотеки, которых нет в системе по умолчанию. В Linux общего универсального набора библиотек нет, и общим для всех дистрибутивом является только ядро и базовый набор утилит. Чтобы обеспечить работоспособность своих программ, создатели приложений вынуждены прямо указывать в установочных пакетах, к каким дополнительным программам и библиотекам обращается их детище. Соответственно, чтобы программа заработала, сначала нужно установить недостающие компоненты. Например, программа может представлять собой графический интерфейс для консольного архиватора. И вся ее задача - это перевести действия пользователя, например мышью, на язык этого самого консольного архиватора. Простой пример: пользователь кликнул в окошке программы по значку «Распаковать», а программа передает соответствующую команду архиватору. Когда архиватор заканчивает работу, программа перехватывает данные об операции и сообщает пользователю результат. В итоге для создания и распаковки архивов больше не требуется изучать устройство архиватора и использовать командную строку. Однако если не установить сам консольный архиватор, программа работать не сможет. Таким образом, он представляет собой ее Зависимость. Главный недостаток Зависимостей заключается в том, что они часто вызывают конфликты. Представьте что одной программе для работы требуется библиотека /lib/hackersoft.lib версии 1.26, а другой - более ранняя версия 0.93. В итоге просто так эти две программы не установишь, ведь две разные версии одной и той же библиотеки могут оказаться фактически несовместимыми между собой. Остается либо устанавливать более старые версии программ, либо ждать, пока обе программы научатся работать с единой библиотекой. Третий вариант - самостоятельно разрешать конфликт. В самом простом случае может помочь создание жесткой ссылки на библиотеку командой вида.
sudo ln /lib/hackersoft-0.93.lib /lib/hackersoft-1.26.lib
А в более сложном - потребуется править исходный код приложений, что уже требует глубокого знания Linux и ее командной строки, а также определенных навыков программирования.
Второй ключевой недостаток Зависимостей – сам факт того, что дополнительные компоненты нужно отдельно загружать и устанавливать. Ладно, если зависимость одна, но их может быть сколько угодно – и десять, и пятьдесят, и сто.
По выше названным причинам на ранних этапах развития Linux Зависимости были настоящей бедой и вызывали священный ужас у непосвященных. Благо, в современных дистрибутивах проблема, за редким исключением, полностью решена. При установке новых программ такие менеджеры пакетов, как rpm (Fedora, Mandriva и.т.д.) и apt (Debian, Ubuntu и.т.д) и др., сами анализируют, какие пакеты необходимо загрузить и установить. А от пользователя требуется только кликнуть мышью в удобной графической оболочке и согласиться с установкой дополнительного ПО. Все необходимое будет загружено и установлено автоматически.
Что означает сообщение «у вас недостаточно прав для установки приложения»? И кто такой пользователь root?
В Linux существует четкое разграничение прав пользователей. Обычно только администратор или пользователь, создавший файл (или каталог), могут выполнять с ним любые операции. В то же время любой файл можно сделать доступным для определенных групп пользователей и недоступным для других. Например, пользователи из группы гостей получат возможность только читать содержимое документа, а привилегированный пользователь - читать и вносить в него изменения.
root - это корневой пользователь, суперпользователь или администратор компьютера, обладающий неограниченными правами в системе. Постоянно работая с его правами, вы подрываете безопасность системы и рискуете случайно привести ее в неработоспособное состояние. Поэтому рекомендуется создать обычного пользователя с ограниченными правами и выполнять повседневные задачи от его имени.
В то же время такие операции, как установка новых приложений, доступна только администратору. Поэтому иногда необходимо временное получение прав суперпользователя. Оно достигается выполнением команды su или sudo. Команда su переведет командную строку в режим Администратора и позволит выполнять в ней любые операции.
Внимание! В некоторых дистрибутивах Linux команда su запрещена по умолчанию, и следует использовать sudo вместо нее. Команда установки файлового менеджера mc в Ubuntu будет иметь следующий вид:
apt-get install mc
Но если эту команду вписать в «Терминал» с правами обычного пользователя, установка прервется ошибкой. Выполняя ту же команду от лица администратора, консоль продолжит установку. Команда будет выглядеть так:
sudo apt-get install mc
Если же вы хотите выполнить только одну операцию в консоли, достаточно ввести sudo в начале команды. Так, следующая команда удалит все содержимое директории music, даже если вы не являетесь пользователем user (владельцем этой директории):
sudo rm –rf /home/USER/music
Следует заметить, что сообщение об отсутствии прав на операцию с файлами может быть вызвано некорректной расстановкой его атрибутов. Для того чтобы разрешить любому пользователю любые операции с файлом hackersoft.pdf, находящимся в директории /home/USER/Documents/hackersof/, достаточно перейти в ее директорию:
cd /home/USER/Documents/hackersoft
и ввести:
sudo chmod 777 hackersoft.pdf Для удаления файла могут потребоваться права записи в каталог, в котором он находится.
4 Способа установки приложений плюсы и минусы
Что такое Tarball («Тарболлы») и бинарные пакеты?
Tarball – это обычный архив формата TAR, TGZ, TBZ или TAZ. Внутри него может быть все что угодно. Однако если вы загрузили дистрибутив программы из Интернета или взяли с DVD, а сам файл имеет подобное расширение, то внутри, скорее всего, исходный код приложения. Однако это может быть и бинарный файл. В таком случае внутри архива вы найдете исполняемый файл с разрешением RUN, BIN, IN или подобным. Разархивируйте тарболл в свободную директорию и запустите мышью исполняемый файл. Все, приложение установлено.
Если что-то пойдет не так, попробуйте проверить права на исполняемый файл. Запустите командную строку и введите:
sudo chmod 777 /home/USER/FILE/file.run
Таким образом, файл станет доступным для запуска всем пользователям.
Во-вторых, полезным бывает обратиться к прилагаемому файлу помощи, например help.txt или readme.txt. Если вы захотите запустить приложение из консоли, воспользуйтесь командой вида:
./*.run Для файлов с разрешением RUN
sh *.bin или sh *.sh
Для файлов с разрешением BIN и SH
java -jar *.jar
Для Java-архивов

Звездочкой «*» с произвольным разрешением обозначается исполняемый файл приложения. Он может представлять собой как готовое к работе приложение, так и установочный пакет. Возможно, потребуется запустить эти команды от имени администратора.

Преимущества: относительная универсальность, простота в установке

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

Вывод: рекомендуется к использованию только в случае отсутствия других вариантов
Как собирать пакеты из исходного кода?
Если вы загрузили Tarball, распаковали его и получили директорию со множеством файлов, среди которых есть файлы с именами readme и install, то, скорее всего, это исходные коды программы. Часто архив с исходными кодами имеет имя вида abc-0.8.7.tar.gz, где abc – имя программы, а 0.8.7 – ее версия. В самом банальном случае для установки программы требуется несколько простых шагов.
1. Создаем директорию для исходных кодов программы, помещаем туда архив и распаковываем его командой:
tar xfzv abc-0.8.7.tar.gz
2. Конфигурируем приложением командой
./configure
В ряде случаев скрипта конфигурации configure нет, и шаг можно пропустить.
3. Дождавшись, пока конфигурирование закончится, можно запускать устанавливать приложение командой:
make && sudo make install
4. Для удаления приложения следует воспользоваться командой:
sudo make uninstall

Для выполнения названных операций в системе должен быть установлен компилятор (обычно gcc), а также все необходимые библиотеки. Иногда во время установки возникают ошибки, и наилучшим способом их разрешения является поиск информации о них в Интернете.
Преимущества: предельная гибкость при конфигурировании приложения, возможность редактирования исходников программы перед установкой, возможность компиляции максимально производительно приложения.

Недостатки: возможны проблемы с Зависимостями, способ требует уверенного знания системы, самый медленный и трудоемкий способ установки программ, возможные сложности с удалением программы (необходимо хранить директорию с исходниками), необходимость создавать ассоциации файлов и ярлыки вручную

Вывод: мы настоятельно НЕ РЕКОМЕНДУЕМ собирать приложения из исходных кодов, если их дистрибутивы есть в репозитории вашей системы. Это позволит сэкономить время и обеспечить лучший контроль над системой в целом. Однако если вы хотите получить максимально производительный пакет или просто нет других вариантов, то этот способ для вас.
Как устанавливать специфические пакеты дистрибутива (например, DEB, RPM)?
В большинстве дистрибутивов достаточно пару раз кликнуть по пакету, ввести пароль администратора и дождаться конца установки. Однако в системе должны быть установлены все Зависимости требуемого приложения. В дополнение ко всему не каждый DEB-пакет подойдет к любому дистрибутива семейства Debian (Ubuntu), и не каждый RPM-пакет - к любому дистрибутиву семейства RedHat (Fedora). Желательно устанавливать только те пакеты, которые были специально скомпилированы для вашей системы. Часто о назначении пакета можно судить по его названию. Например, пакет abc-0.9.7-ubuntu.deb, скорее всего, был скомпилирован для Ubuntu, а bcd-1.0.3-opensuse.rpm - для OpenSUSE.

Преимущества: возможность установки каждого пакета по отдельности

Недостатки: возможны проблемы с Зависимостями
Что такое репозитории, и как следует устанавливать программы из помощи менеджера пакетов?
В контекте Linux Репозитории, или Репозитарии (англ. «Repository» - хранилище) – это некоторое хранилище установочных пакетов для вашей системы. Например, репозиторий pacman обеспечивает пользователей OpenSUSE возможностью загрузки и установки самых актуальных приложений для их дистрибутива.
К системе можно подключить и несколько репозиториев. Например, установочный DVD, локальное зеркало вашего провайдера и официальные удаленные серверы. Чем больше репозиториев вы подключите, тем шире выбор программ для установки. Однако между некоторыми репозиториями возникают конфликты, и следует выбрать из конфликтующих репозиториев только один. Более подробную информацию о репозиториях вы сможете прочесть на сайте вашего дистрибутива.
Внимание, для различных версий одного и того же дистрибутива могут требоваться разные репозитории!
Для запуска менеджера пакетов обычно следует выбрать пункт меню с названием наподобие «Установка и удаление программ» или «Менеджер пакетов». Далее потребуется ввести пароль администратора, и можно осуществлять поиск требуемого приложения по содержимому репозиториев.
После того как нужное приложение будет найдено, нужно кликнуть по кнопке «Установить» - и менеджер пакетов сам установит все необходимые компоненты, включая зависимости.

Преимущества: высокая скорость установки, простота установки, предельная актуальность и совместимость между собой пакетов

Недостатки: требуется доступ к Интернету или полное собрание содержимого репозиториев на локальных носителях

Вывод: оптимальный способ установки программ в Linux - просто, быстро и надежно.

Источник CHIP
23:32:45 3
30 января 2012
#2сообщение удалено
#3 MACTEP uid#646 что ты имеешь ввиду под словом "Зависимости" 23:44:40 1
#4 Flash_X uid#496 Geniusто и имеет. Зависимости не скачиваются, скачиваются компоненты\программы\библиотеки с которыми прописаны зависимости.
А на что он ругается?
01:29:46 0
#5сообщение удалено
#6 MACTEP uid#646 sudo apt-get update
выполни в терминале
08:20:12 2
#7 MyP3uk uid#1395 выполнил: sudo apt-get update
sudo apt-get upgrade
всё равно не помогает...
16:16:27 0
#8сообщение удалено
#9 Letty uid#633 как сделать root пользователя ? 19:14:18 0
#10 MyP3uk uid#1395 вот тут есть эта тема 19:50:51 -1
#11 Anonymous uid#55 su -
и ввести пароль к руту
Ну прежде нужно руту пароль задать только я команду не помню
21:15:26 0
#12 Anonymous uid#55 вот кажись
sudo passwd root [тут сам пароль]
и ввести пароль юзверя под который сидишь
21:16:56 0
#13сообщение удалено
#14сообщение удалено
#15сообщение удалено
#16сообщение удалено
#17 knz uid#57
Люди ставьте дебиан :D
Почему????
13:01:08 0
#18 MACTEP uid#646 Потому что это терминал и чем выше ты обладаешь способностью управления терминалом тем более искусным считаете линуксовод и тем более вы прекратите боятся линуксов в сыром виде))))))))) 13:06:35 1
#19 Anonymous uid#55 knz, да потому что там все в консоли ручками. Все конфиги ну всё короче 13:15:59 0
Следующие сообщения
*Ник: Проверка уникальности... Если вы уже зарегистрированы, авторизуйтесь.
*Сообщение:
  Загрузка...