Linux под дохлую машинку

 
1 2 3
+
-
edit
 

Mishka

модератор
★★★
Balancer> Ага. "Если у программы нормальный звуковой драйвер, то она хорошо работает и с Sound Blaster и с Gravis Ultrasound" :D
Balancer> Мы в XXI веке уже или где? С какого рожна каждая программа должна заботиться об унифицированных операциях, которые на себя может взять ОС?

Ну-ка расскажи мне как ОС обеспечит установку многолеерного драйвера сама? Откуда она будет знать какой уровень связан с каким? А главное, в каком порядке из можно устанавливать и убирать? Где здесь унифицированные операции?
 
+
-
edit
 

Mishka

модератор
★★★
Balancer> В том-то вся и фишка, что инсталляцией программы занимается не программа, а менеджер портежа - emerge со своими причиндалами.

Рома, это большая ложь. Этот манагер ведет базку и не более. А в остальном, он скачивает скриптик и запускает его. Не проверяя (а полностью доверяя), что этот скриптик может с системой сделать. При этом, этот манагер верит тому, что написано в специальном заголовке скриптика — про версии программы и т.д. Поэтому я раньше и говорил тебе, если кто-то хакнет официальный e-build-ский сайт и положит, скажем, вместо gcc-4.1.1 туда вирусок или трояна, то народ будет видеть только то, что gcc-4.1.1 установлен.
 
+
-
edit
 

Mishka

модератор
★★★
Mishka>> Про первое — не слышал
foogoo> Звучало примерно так: If you'd like to make your programs load faster and not to kill operation system, please use a config files...

Ну, это нормально. Просто часть народу стало использовать реестр как общую СУБД для хранения всех конфигов, разных настроек и т.д. С написаем средств легкого конфигурирования.
 
+
-
edit
 

Mishka

модератор
★★★
helicopter> Ну в линуксе мне пока таких приложений не попадалось :) Тут дело не только в кривом софте, но и в неправильном разграничении прав доступа, из-за чего "прямому" софту тоже бывают нужны админские права.

Ну, прямо так и не попадалось. А битик-аттрибут у файлов для смены текущего euid откуда появился?

helicopter> Вот зачем юзерам ковырятся в VPN действительно непонятно.

У каждого юзера может быть свой коннект и VPN свой. Включая начальные ключи.

helicopter> Ещё с виндой (на NTFS) были приколы такого типа: с сидюка копирую папку на винт, потом пытаюсь удалить, винда ругается, что неостаточно прав (а это было под админом).

Создать объект и удалить объект — это разные права. К сожалению, в виндах, система прав лучше, чем в юнихе. Правда, поэтому она тяжелее в реализации. Впрочем, юнихи тоже пошли в этом направлении — появились аксес листы — man 5 acl.
 
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> Рома, это большая ложь. Этот манагер ведет базку и не более. А в остальном, он скачивает скриптик и запускает его. Не проверяя (а полностью доверяя), что этот скриптик может с системой сделать.

Все эти "скриптики" - это компонент портежа. Не нужно считать, что портеж - это только ebuild + база данных. Это весь комплекс. При этом 99% процентов ebuild'ов поставляется как раз НЕ производителем программы.

Вот я пишу emerge sun-jdk - и что, мне соответствующий ebuild SUN писала?? :)
 
+
-
edit
 

Mishka

модератор
★★★
Balancer> Все эти "скриптики" - это компонент портежа. Не нужно считать, что портеж - это только ebuild + база данных. Это весь комплекс. При этом 99% процентов ebuild'ов поставляется как раз НЕ производителем программы.

Эти скриптики компонент, только они e-build-м не контролируются. В них писать можно что хочешь. В этом смысле отличия от RPM нет.

Balancer> Вот я пишу emerge sun-jdk - и что, мне соответствующий ebuild SUN писала?? :)

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

А вот с тем же гнушным компилятором возни намного больше. Возьми, хотя бы подстройку наилучшей хэш-функции. Хорошо, если есть бинарники, а, если нет, то надо всю структуру для компиляции разворачивать. Так вот, ни один e-build до конца за этим не поспевает.

А посмотри на установку Х-в — никто в здравом уме не настравивает их сам при инсталлировании — только через интерфейс, которые сами Х и дают.
 
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> Это хвала Сану, что они написали JDK таким образом, что ставить его можно только копированием файлов и кое-какой настройкой переменных среды. Вдобавок, все еще и хорошо описала.

Почему же тогда аналогично обстоит дело и с любым другим софтом в Gentoo? Более 12 тыс. пакетов. Плюс вагон и маленькая тележка в сторонних оверлеях.

Mishka> А вот с тем же гнушным компилятором возни намного больше.

Какой? emerge gcc и всё.

Mishka> Возьми, хотя бы подстройку наилучшей хэш-функции. Хорошо, если есть бинарники, а, если нет, то надо всю структуру для компиляции разворачивать. Так вот, ни один e-build до конца за этим не поспевает.

Не вник в проблему. У меня хешфункции используются дефолтовые, с флагами компоновщика особо не играю, но сколько народа в Gentoo сидит с нестантартными хеш-функциями библиотек - и всё ок.

Mishka> А посмотри на установку Х-в — никто в здравом уме не настравивает их сам при инсталлировании — только через интерфейс, которые сами Х и дают.

Так настройка - это уже не инсталляция. Подавляющее большинство софта под Linux настраивается отдельно от установки. Всюду.
 
US Сергей-4030 #06.10.2006 18:10
+
-
edit
 

Сергей-4030

исключающий третье
★★

В любом случае - это все полумеры, разница может быть "тактическая", но принципиальной - нет. Принципиальная разница - это когда программа следует строгим правилам установки, а если правила пытается нарушить, то ей отлуп. Отлуп от ОС, обязательный, а не от добровольного контроля той же программы инсталляции.
 
+
-
edit
 

Mishka

модератор
★★★
Balancer> Почему же тогда аналогично обстоит дело и с любым другим софтом в Gentoo? Более 12 тыс. пакетов. Плюс вагон и маленькая тележка в сторонних оверлеях.

А ты посмотри внутрь.

Balancer> Какой? emerge gcc и всё.

Конечно, раскатал губу — посмотри внутрь.

Balancer> Не вник в проблему. У меня хешфункции используются дефолтовые, с флагами компоновщика особо не играю, но сколько народа в Gentoo сидит с нестантартными хеш-функциями библиотек - и всё ок.

Когда компилятор приносишь в исходниках, то вычисление этой функции делается обязательно. Там даже программка написана, которая компилируется, выполняется, а по результатам работы число для хэш-функции и выставляется. Вот эту часть, если e-build делает не бинарную установку, совсем понять не может. Он про нее просто не знает.

Balancer> Так настройка - это уже не инсталляция. Подавляющее большинство софта под Linux настраивается отдельно от установки. Всюду.

Начальная — это часть инсталляции. Всюду. Просто для джавы достаточно скопировать и кое-какие переменные установить, которые, вдобавок еще и достаточно постоянны, а тут надо много крутить, да еще и обратной связью от пользователя — крыша у e-build-а съедет это делать.
 
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> Начальная — это часть инсталляции. Всюду. Просто для джавы достаточно скопировать и кое-какие переменные установить, которые, вдобавок еще и достаточно постоянны, а тут надо много крутить, да еще и обратной связью от пользователя — крыша у e-build-а съедет это делать.

Страсти ты всё какие-то рассказываешь. Уж сколько какого разнородного софта не ставится, и далеко не на одной машине - вот не замечаю я с прикладной точки зрения разницы между установкой разных пакетов.

Да и своих ebuild'ов, пусть и не шибко сложных, уже не один десяток писал. Я софт "ручками" принципиально не ставлю, нефиг на машине мусорить неприкаянными файлами...
 
+
-
edit
 

Mishka

модератор
★★★
Balancer> Да и своих ebuild'ов, пусть и не шибко сложных, уже не один десяток писал. Я софт "ручками" принципиально не ставлю, нефиг на машине мусорить неприкаянными файлами...

Вот когда свой e-build пишешь, как говоришь ему куда какой файл засунуть, какой файл подправить, как файл сгенерить, какую базку создать (если надо) и как, чем ее наполнить? Как ты сообщаешь, какая версия пакета?
 
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> Вот когда свой e-build пишешь, как говоришь ему куда какой файл засунуть, какой файл подправить, как файл сгенерить, какую базку создать (если надо) и как, чем ее наполнить? Как ты сообщаешь, какая версия пакета?

1. Я ему говорю, откуда скачать исходники/бинарники (смотря что ставлю)

2. Указываю, каким алгоритмом (из имеющихся в наличии, сам не писал пока, ни разу не было нехватки готовых) это дело собирается. Т.е. ./configure && make && make install или же всякие ant, scons и т.п...

3. Уже моя работа - если нужно, вставляю функцию постобработки после разворачивания рабочего каталога, как правило, это если нужно накладывать свои патчи.

Всё. Потенциально ещё возможны операции ручного регулирования процесса переноса из песочницы в реальную FS готового набора файлов, но мне лично оно тоже пока не доводилось в своих ebuild'ах.

Бинарных пакетов, кстати, у меня не так уж мало установлено. Навскидку:
- GoogleEarth
- Java SDK
- Mozilla Sunbird
- куча java-библиотек
- GHC
- Last.FM плейер
- Opera

Не раз ставились
- Firefox-bin
- OpenOffice-bin
- всевозможные игрушки

На Авиабазе стоит один бинарный броадкастер, иногда жена подругам музыку послушать ставит :) Тоже из ebuild'а ставился.

Все эти бинарные пакеты, надо полагать, про Gentoo ничего не знали :D Что не мешает им инсталлироваться корректно и ТОЛЬКО через песочницу (напрямую в систему я уже с год софта не ставлю).

Ну а про компиляцию из исходников, надеюсь, и вовсе вопросов нет.
 
+
-
edit
 

Mishka

модератор
★★★
Balancer> 1. Я ему говорю, откуда скачать исходники/бинарники (смотря что ставлю)

Это понятно.

Balancer> 2. Указываю, каким алгоритмом (из имеющихся в наличии, сам не писал пока, ни разу не было нехватки готовых) это дело собирается. Т.е. ./configure && make && make install или же всякие ant, scons и т.п...


А вот эта часть очень интересная. В GNU всегда configure делал огромную часть работы (честно говоря, я считаю, что он пришел из BSD систем). Загляни в него. Этот офигеннейший скрипто-программный файл пишется разарботчиком пакета. Посмотрев в него, ты офигеешь от того, что делается на твоей системе без твоего ведома. Пишеться он достаточно произвольно. И никаким правилам e-build-а не подчиняется. Впрочем, любой GNU-шный продукт сейчас так ставиться — configure, make, make install. Здесь e-build в чистом виде спаразитировал на другом механизме. Но и как всякий паразит, он этот механизм не контролирует.

Balancer> 3. Уже моя работа - если нужно, вставляю функцию постобработки после разворачивания рабочего каталога, как правило, это если нужно накладывать свои патчи.
Balancer> Всё. Потенциально ещё возможны операции ручного регулирования процесса переноса из песочницы в реальную FS готового набора файлов, но мне лично оно тоже пока не доводилось в своих ebuild'ах.
Balancer> Бинарных пакетов, кстати, у меня не так уж мало установлено. Навскидку:
Balancer> - GoogleEarth
Balancer> - Java SDK
Balancer> - Mozilla Sunbird
Balancer> - куча java-библиотек
Balancer> - GHC
Balancer> - Last.FM плейер
Balancer> - Opera
Balancer> Не раз ставились
Balancer> - Firefox-bin
Balancer> - OpenOffice-bin
Balancer> - всевозможные игрушки
Balancer> На Авиабазе стоит один бинарный броадкастер, иногда жена подругам музыку послушать ставит :) Тоже из ebuild'а ставился.
Balancer> Все эти бинарные пакеты, надо полагать, про Gentoo ничего не знали :D Что не мешает им инсталлироваться корректно и ТОЛЬКО через песочницу (напрямую в систему я уже с год софта не ставлю).
Balancer> Ну а про компиляцию из исходников, надеюсь, и вовсе вопросов нет.

??? масса вопросов. Ты на те же makefile смотрел? Ты видел в них куски шелла, которые идут в поток и выполняются? Как это контролируется?
 
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> ??? масса вопросов. Ты на те же makefile смотрел? Ты видел в них куски шелла, которые идут в поток и выполняются? Как это контролируется?

Уф. Устал уже разьснять. Естественно, в принципе, и из ebuild'а, и при сборке по make, систему завалить можно.

Но реально, ни один ebuild, который в принципе позволит сделать такое, в портеж просто не войдёт. И случайные сбои исключены, так как сборка идёт в песочнице, а не в реальной системе. И только после полного окончания оной, уже сам emerge своими скриптами переносит получившиеся файлы в боевую систему.

Более того, экспериментировать влом, но года полтора назад, когда некоторые пакеты (некоторые шрифты, старая Опера) через песочницу не ставились, а норовили прописаться сразу в системе, они при стандартной установке обламывались по access denied. Приходилось их ставить по одному, отключая песочницу, т.е. сразу в живую систему.

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

Как сейчас с этим дело обстоит - не знаю, так как уже больше года, наверное, не сталкивался с такими пакетами. Их, таки, заставили на общих основаниях собираться в песочнице :)
 
+
-
edit
 

Mishka

модератор
★★★
Balancer> Уф. Устал уже разьснять. Естественно, в принципе, и из ebuild'а, и при сборке по make, систему завалить можно.

А я тебе про что? Т.е. это не фунция ОС реализовывать такой уровень и говорить о том, что ОС это делает — нельзя. ОС определила интрефейс или протокол, а вот, что идет по протоколу — это дело как раз этих скриптов.

Balancer> Но реально, ни один ebuild, который в принципе позволит сделать такое, в портеж просто не войдёт.

Да, я помню, что писали, что вирусов для линя не может быть.

Balancer> И случайные сбои исключены, так как сборка идёт в песочнице,

И ты в это веришь? :) А как же драйвера обновляются? Как сохраняются многие настройки, если на чтение доступно только с рута? Как само ядро обновляется, если конфигурация, в общем случае тоже защищена от чтения должна быть?

Balancer> а не в реальной системе. И только после полного окончания оной, уже сам emerge своими скриптами переносит получившиеся файлы в боевую систему.

Так переносов файлов может не хватить. Посмотри на тот же /etc/ld.so.conf — он должен быть дополнен, а не перекрыт.

Balancer> Более того, экспериментировать влом, но года полтора назад, когда некоторые пакеты (некоторые шрифты, старая Опера) через песочницу не ставились, а норовили прописаться сразу в системе, они при стандартной установке обламывались по access denied. Приходилось их ставить по одному, отключая песочницу, т.е. сразу в живую систему.

Надо будет глянуть повнимательнее. Так как make install устанавливает и suid биты. Правда, очень часто посредством команды install.

Balancer> Т.е., похоже, сборка/установка идут с урезанием прав. Раз пакетные скрипты не могут прописаться в реальную систему.

Или прописывались они по-дурацки.

Balancer> Как сейчас с этим дело обстоит - не знаю, так как уже больше года, наверное, не сталкивался с такими пакетами. Их, таки, заставили на общих основаниях собираться в песочнице :)


На это надо глянуть, но когда я смотрел пол-года назад, у меня было стойкое ощущение, что можно все развалить и очень легко. Просто команда(ы), которая включает в порт пытается тщательно все отлаживать. Это не значит, что не может появиться одной команды или пользователя, который не захочет всем поднакакать.
 
RU Balancer-new-user #07.10.2006 11:40
+
-
edit
 

Balancer-new-user

эксперт
Mishka> А я тебе про что? Т.е. это не фунция ОС реализовывать такой уровень

Извини, но что тогда по твоему ОС в Linux?? Одно только голое ядро, что ли? Категорически не согласен.

Mishka> Да, я помню, что писали, что вирусов для линя не может быть.

Если бы центральный репозиторийбыл доступен на запись каждому желающему...

Mishka> И ты в это веришь? :) А как же драйвера обновляются? Как сохраняются многие настройки, если на чтение доступно только с рута?

Блин, ну возьми сам, да попробуй! Хоть ati-drivers, хоть alsa-driver - ставятся сперва исключительно в песочницу. Ну сделай ты ebuild ari-drivers-XXX.ebuild compile и посмотри, где оно будет лежать.

Прописью в систему устанавливаемые пакеты сами по себе не занимаются. Раньше, когда некоторые из них этим занимались, их установку приходилось проводить особо, отключая песочницу, так как иначе выходила ошибка доступа! FEATURES="-sandbox" перед таким emerge делать приходилось.

Mishka> Как само ядро обновляется, если конфигурация, в общем случае тоже защищена от чтения должна быть?

Исходники ядра ставятся как и любой другой пакет, по emerge. При чём они слотовые, в системе может быть много разных версий ядра. Выбор текущего ядра для сборки осуществляется по eselect kernel. Сборка ядра - через genkernel, ручками. Вот ядро, кстати, своими модулями может мусорить. Хотя их, когда ненужные, как раз ручками вытирать легко, ибо ставятся в строго определённые каталоги.

Mishka> Так переносов файлов может не хватить. Посмотри на тот же /etc/ld.so.conf — он должен быть дополнен, а не перекрыт.

ld.so.conf пополняется скриптами emerge, не пакета.

Mishka> Надо будет глянуть повнимательнее. Так как make install устанавливает и suid биты. Правда, очень часто посредством команды install.

make install в Gentoo ставит файлы в /var/tmp/portage/<имя-пакета>/image/
(сборка идёт там же в <имя_пакета>/work/)

Я не совсем въезжаю, как осуществляется защита, так как все файлы там принадлежат root'у, но факт есть факт - пока были пакеты, что-то устанавливающие непосредственно в систему, не в /var/tmp/, то для них персонально песочницу приходилось вырубать. Иначе - access denied на операциях записи в каталоги системы.

Mishka> Или прописывались они по-дурацки.

Обычные cp/mv - чего там может быть дурацкого? Именно на них, при инаталляции, пакеты срубались. Я ещё первое время никак понять не мог, вроде от root'а кручу emerge, а обычное копирование готового файла - обламывается.

Mishka> Это не значит, что не может появиться одной команды или пользователя, который не захочет всем поднакакать.

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

Тем более, что все сомнительные пакеты обычно изначально замаскированы, умеренно проверенные идут с ключиком "нестабильных", и только недели спустя, если нет проблем, переходят в категорию стабильных.

Если ставишь только стабильное - это гарантия того, что ставишь то, что не вызвало проблем у тысяч других пользователей.
 
+
-
edit
 

Mishka

модератор
★★★
Balancer-new-user> Извини, но что тогда по твоему ОС в Linux?? Одно только голое ядро, что ли? Категорически не согласен.

Да нет, конечно. Но инсталляция — не оно. Протокол инсталляции — оно, а вот наполнение — дело приложения.

Balancer-new-user> Если бы центральный репозиторийбыл доступен на запись каждому желающему...

Системы? Да не надо его на запись каждому желающему. И без него можно будет. :)

Balancer-new-user> Блин, ну возьми сам, да попробуй! Хоть ati-drivers, хоть alsa-driver - ставятся сперва исключительно в песочницу. Ну сделай ты ebuild ari-drivers-XXX.ebuild compile и посмотри, где оно будет лежать.

Вот возьми AFS, там, где с генерацией ключа на шифровку, там интересно получается.

Balancer-new-user> Прописью в систему устанавливаемые пакеты сами по себе не занимаются. Раньше, когда некоторые из них этим занимались, их установку приходилось проводить особо, отключая песочницу, так как иначе выходила ошибка доступа! FEATURES="-sandbox" перед таким emerge делать приходилось.

Да смотрел я где-то год назад — не впечатлило.

Balancer-new-user> Исходники ядра ставятся как и любой другой пакет, по emerge. При чём они слотовые, в системе может быть много разных версий ядра. Выбор текущего ядра для сборки осуществляется по eselect kernel. Сборка ядра - через genkernel, ручками. Вот ядро, кстати, своими модулями может мусорить. Хотя их, когда ненужные, как раз ручками вытирать легко, ибо ставятся в строго определённые каталоги.

Я же говорю, что проблемы с обновлением ядра присутствуют. :) Обновить можно исходники. А вот, обновить ядро с установленными уже опциями в предыдущем — фигушки. :P


Balancer-new-user> ld.so.conf пополняется скриптами emerge, не пакета.

А как он знает, что надо добавлять? Там же проблемки будут.

Balancer-new-user> make install в Gentoo ставит файлы в /var/tmp/portage/<имя-пакета>/image/
Balancer-new-user> (сборка идёт там же в <имя_пакета>/work/)
Balancer-new-user> Я не совсем въезжаю, как осуществляется защита, так как все файлы там принадлежат root'у, но факт есть факт - пока были пакеты, что-то устанавливающие непосредственно в систему, не в /var/tmp/, то для них персонально песочницу приходилось вырубать. Иначе - access denied на операциях записи в каталоги системы.

Надо будет посмотреть по-вниметельнее.

Balancer-new-user> Обычные cp/mv - чего там может быть дурацкого? Именно на них, при инаталляции, пакеты срубались. Я ещё первое время никак понять не мог, вроде от root'а кручу emerge, а обычное копирование готового файла - обламывается.



Посмторю, как время позволит.
 
+
-
edit
 

Balancer

администратор
★★★★★
Mishka> Да нет, конечно. Но инсталляция — не оно. Протокол инсталляции — оно, а вот наполнение — дело приложения.

Нет, самой инсталляцией собранного пакета в систему занимается emerge со своим зоопарком. Но не приложение. Приложение ставит файлы только куда ему укажет emerge. По уже не раз упомянутому факту access denied, если приложение будет ставить файлы куда-то в систему, забив на указания портежа - оно обломится.

Mishka> Системы? Да не надо его на запись каждому желающему. И без него можно будет. :)

Но как?

Mishka> Вот возьми AFS, там, где с генерацией ключа на шифровку, там интересно получается.

Не знаю, не смотрел. Генерация ключей, вообще, не раз встречалась, пакетов с шифрацией много. Но как-то пока обходилось. Будь то всякие SSL, будь то банальный tripwire.

Mishka> Я же говорю, что проблемы с обновлением ядра присутствуют. :) Обновить можно исходники. А вот, обновить ядро с установленными уже опциями в предыдущем — фигушки. :P

Почему? Я установленные опции чуть ли не с 2.6.8 не переписывал. Только иногда выкидываю новые, но не нужные мне драйвера в новых версиях ядра. Сейчас, вот, на 2.6.17-r8 сижу. Вообще, ядро обновляю обычно сразу по выходу новой версии.

Balancer-new-user>> ld.so.conf пополняется скриптами emerge, не пакета.
Mishka> А как он знает, что надо добавлять? Там же проблемки будут.

Понятия не имею, откуда знает. ebuild, наверное, говорит. Или сам emerge разбирается. По факту, скажем, на домашней машине сейчас в оном файле 23 строки, на рабочей amd64 49 строк (ибо там двойной набор путей, под 32 и под 64 бита), на Авиабазе - 14 строк. Ручками этот файл за все годы ни разу не менял.
 
1 2 3

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru