Мне очень сложно устанавливать программное обеспечение на Linux-машину как обычному пользователю. У меня нет привилегий root на этой машине, поэтому я не могу использовать какую-либо систему диспетчера пакетов.
Например, я пытаюсь установить простой IRC-клиент, но установка всего из исходников - это боль, потому что мне нужно вручную загрузить и установить каждая зависимость от дерева (irssi-> glib-> ncurses и т. д. и т. д.).
Итак, я загрузил ircii, который кажется самым минималистичным клиентом, который я могу найти, но для него все еще требуется некоторая программа под названием lex который я не могу найти.
Есть ли простые решения для этой утомительной задачи? Почему люди просто не доставляют двоичные файлы, в которые есть все, что мне нужно (вроде как .exes)?
Можно подумать, что больше людей вспомнят многопользовательские системы и то, как часто можно запускать программное обеспечение из домашнего каталога. Тем не менее, вы должны подтвердить, что с вашим хостом все в порядке.
Если в системе нет зависимостей для компиляции из исходного кода, и ваш администратор не установит их, вам лучше всего выбрать следующие варианты:
Возможно, вы захотите взглянуть на диспетчер пакетов Nix. Мало того, что весь его подход к управлению пакетами очень интересен, но на веб-сайте также утверждается, что он работает с каждым дистрибутивом Linux и позволяет непривилегированный пользователям устанавливать программное обеспечение с его помощью. Вы можете найти дополнительную информацию, а также полный список всех доступных пакетов (около 2500) на сайте http://nixos.org/nix/ .
Any easy solutions for this hassling task? Why don't people just deliver binaries that have all I need included in them (sort of like .exes)?
Рискуя показаться язвительным, способ сделать это является либо
Я предполагаю, что машина, над которой вы работаете, не ваша, иначе номер 1 был бы достижим. С учетом этого предположения, если вы работаете на моей машине, я не хочу, чтобы вы могли устанавливать новые пакеты и библиотеки, когда захотите, и я хочу, чтобы вы пришли ко мне, чтобы сделать это, если я не действительно доверять тебе. Вот как должны работать дистрибутивы Linux и администрирование Linux.
Итак ... почему люди просто не доставляют двоичные файлы? Скорее всего, это связано с тем, что linux (библиотеки) гораздо более модульные по своей природе и немного более фрагментированы. Не существует такого огромного API ядра, как win32, который разработчик мог бы гарантировать. Они должны полагаться на явные библиотеки, которые им нужны, и конкретные версии этих библиотек, которые будут доступны как во время компиляции, так и во время выполнения, чтобы успешно распространять свое программное обеспечение. Это почти всегда верно. AFAIK, Windows имеет ту же проблему со всеми, кроме простейших exes, которые просто полагаются на основные библиотеки Windows - вам нужно будет запустить установщик с правами администратора, чтобы внести изменения в реестр и установить библиотеки. MacOSX - это почти единственная ОС из наиболее известных 3, которая охватывает тот случай использования, о котором вы говорите, поскольку все файлы .app полностью автономны и могут быть установлены в $ HOME пользователя и работают нормально.
Так и должно быть, только администраторы должны администрировать машины, а пользователи должны только им пользоваться.
В любом случае, если вы найдете пакет с исходным кодом, который зависит от уже установленного программного обеспечения, вам не нужно его перекомпилировать.
Есть также бинарные файлы для Linux, но их не так много. Я рекомендую вам попробовать найти программы, созданные для интерпретируемых языков. Вы найдете гораздо больше, и для этого потребуется интерпретатор java, python или perl.
Также проверьте, есть ли у вас возможность запускать Wine, если вы можете, вы можете запустить исполняемый файл win32, даже установить его.
Вы можете настроить ту же версию своего Linux на виртуальной машине и попробовать создать статическую версию своего приложения. Затем вы просто переносите его в свой домашний каталог на сервере, и он должен работать (при условии, что вы можете запускать программы из своего домашнего каталога, это не всегда возможно, иногда / home находится в файловой системе, смонтированной с параметром noexec по соображениям безопасности).
Мне пришло в голову, что у вас, вероятно, установлен emacs, что означает, что у вас есть размещенная «ОС» с это собственный менеджер пакетов, который вы жестяная банка использовать из пользовательского пространства.
Пакет поддерживает erc, и я уверен, что есть и другие IRC-клиенты emacs.
Конечно, если вы не парень, работающий с emacs, это не то, что вы хотите услышать.
Linuxbrew может помочь. Я это устанавливаю. Я должен установить gcc
раньше, потому что в моей ситуации я на очень старой машине и gcc
тоже очень старый. Мне удалось установить brew
, но установить другие пакеты пока не удалось (сейчас я «делаю» gcc).
Я пытался установить nix
, но в нем слишком много предпосылки, включая pkg-config, Perl DBI, DBD::SQLite, xmllint and xsltproc, the Boehm garbage collector
и т. д. Если ваша задача - установить вручную меньше, то это плохой выбор.
В двух словах: если ваш пакет можно установить через autotools
(./configure && make && make install
) или другими цивилизованными способами, вам повезло, иначе установить менеджер пакетов может быть намного сложнее, чем установить сам пакет.
Как насчет того, чтобы попросить системного администратора дать вам судо учетная запись? При правильной настройке вы можете выполнять только некоторые команды от имени пользователя root, например диспетчер пакетов, поэтому вы можете устанавливать программное обеспечение без учетных данных root.