LINUX.ORG.RU
ФорумTalks

Господи, какое ж это щастье, когда менеджер пакетов не на питоне!

 


0

1

У меня всё.

Если кто не понял: хрен бы с ней с компиляцией, но вычисление зависимостей, поиск пакета-владельца файла и т.п. – pacman делает мгновенно, в то время как на «самом быстром дистре» emerge, equery, eix пердолятся часами.

★★★★★
Ответ на: комментарий от wandrien

Хотим и путаем. Чего докопался?

dimgel ★★★★★
() автор топика
Ответ на: комментарий от wandrien

Аа. Ну она не прямая, конечно. Но связь есть. Хотя бы такая, что их делают одни и те же люди. Сборка и ПМ будут работать на одну среду, а значит и влиять друг на друга.

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от xmikex

Вообще я считаю формат pkgbuild — это лучшее, что случалось в мире сборки пакетов под линукс.

Вот я тут сегодня программу опакетил:

pkgname=tke
pkgver=3.6
pkgrel=1
pkgdesc="A full-featured source code editor with a minimalist UI. Implemented in Tcl/Tk."
url="http://tke.sourceforge.net/"
arch=('any')
license=('GPL')
depends=('tcl>=8.6' 'tk' 'tclx' 'tcl-vfs' 'tkdnd' 'tklib' 'tcltls')
source=("https://sourceforge.net/projects/tke/files/3.6/tke-3.6.tgz" "fix-install-tcl.diff")
md5sums=('88f15fa11d714377b05a1bf95e5d697a'
         '40e4c07df2cf79c4052d3e1d446740e4')
sha1sums=('b52de6a55a5a7f8bd1c7256e6c3cabf7f381615d'
          '30aecf490c31a227bf6fcde7e14d78cb96a9a419')

prepare() {
    patch -uN -d "$srcdir/${pkgname}-${pkgver}" < fix-install-tcl.diff
}

build() {
    true
}

package() {
    cd "$srcdir/${pkgname}-${pkgver}"
    export DESTDIR="$pkgdir/usr"
    ./install.tcl

    cd "$pkgdir"

    sed -i "s#$pkgdir/usr/#/#" usr/bin/tke usr/share/applications/tke.desktop

    if grep -r "$pkgdir" . ; then
        false
    fi
}

Всё же предельно понятно. (Ну, не считая костылей в package(), но это автор программы виноват, что у него нормального make install нет.)

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

Под RPM проще, конечно, опакетить, чем под дебиан, но тоже морока. Отдельный синтаксис. А смысла никакого. Переменные вписать можно тупо на bash.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от dimgel

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

редко какая maintenance операция бывает одиночная

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

firkax ★★★★★
()
Ответ на: комментарий от firkax

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

Угу. Я за давностию лет забыл уже, но меня тоже вымораживало: для рут-доступа вводить не рут-пароль, а свой собственный пароль обычного юзера?! Бред собачий же.

А для хоткеев в openbox у меня очень рестриктивно настроен /etc/sudoers.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 1)
Ответ на: комментарий от BceM_IIpuBeT

Дело не в том, что они «стандартные» или нет, а в том, что в бинарных дистрибутивах сборкой по рецептам занимается билд-сервер дистрибутива. А в пакетному менеджеру эти заморочки до лампочки.

Это очень слабо связанные между собой подсистемы.

(Хотя в дебиане общий маразм охватил всё, там что сборка через задницу сделана, что установка. Но это дебиан, там без задницы никуда.)

wandrien ★★
()
Ответ на: комментарий от wandrien

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

firkax ★★★★★
()
Ответ на: комментарий от firkax

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

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

Я рыдаю!

Чел, очнись. «Опасная» операция тупо откатывается переустановкой пакета. А «безопасное» удаление хомяка это, как минимум, восстановление из бэкапа недельной давности, если он вообще есть!

Админу локалхоста, вашу мать…

wandrien ★★
()
Ответ на: комментарий от firkax

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

И нужно это чтобы что?

wandrien ★★
()
Ответ на: комментарий от wandrien

(Хотя в дебиане общий маразм охватил всё, там что сборка через задницу сделана, что установка. Но это дебиан, там без задницы никуда.)

Сборка мне и правда показалась переусложнённой (не осилил), а вот с установкой всё просто - это просто распаковка файлов (с учётом какой куда распакован) + скрипты-хуки preinstall postinstall по желанию.

firkax ★★★★★
()
Ответ на: комментарий от wandrien

Если ты страдаешь спонтанным удалением рандомных файлов то у тебя по-любому будет всё плохо, речь была не про это.

firkax ★★★★★
()
Ответ на: комментарий от firkax

а вот с установкой всё просто - это просто распаковка файлов (с учётом какой куда распакован) + скрипты-хуки preinstall postinstall по желанию.

Это в арче.

А в дебиане это еще и всякие dpkg --configure, во время которого МОЖЕТ ВНЕЗАПНО ВЫЛЕЗТИ ДИАЛОГОВОЕ ОКНО С ПСЕВДОГРАФИКОЙ и ДЕБИЛЬНЫМИ ВОПРОСАМИ. И выбор «приложений по умолчанию». И я боюсь вспомнить, что там еще.

И еще, тормозааааа. Как они умудрились сделать тормоза тупо при распаковке архивов? Не знаю…

wandrien ★★
()

Xbps одно время дикий восторг вызывал скоростью, в том числе и xbps-src

Правда по понятным причинам в аур даже и не лез обычно с измениями , в void-е просто не было пакетов, а арче были

One ★★★★★
()
Ответ на: комментарий от wandrien

Чтобы не впадать в маразм с «повышенными привилегиями юзера». Это лишняя и чрезвычайно мутная сущность. Есть юзер, есть рут. Если кто-то может делать что угодно со всей системой (а скрипт, которому ты активировал sudo - именно оно) - это рут, он должен выглядеть чётко как рут и не надо его маскировать под что-то другое.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Если ты страдаешь спонтанным удалением рандомных файлов то у тебя по-любому будет всё плохо, речь была не про это.

А про что была речь? Какие «опасные» операции? Какая модель угроз? Я весь внимание.

На локалхосте с одним юзером, млять!

wandrien ★★
()
Ответ на: комментарий от One

Угу, я выбирал между artix и void, и выбрал artix в т.ч. из-за обилия пакетов.

dimgel ★★★★★
() автор топика
Ответ на: комментарий от firkax

Если кто-то может делать что угодно со всей системой (а скрипт, которому ты активировал sudo - именно оно) - это рут, он должен выглядеть чётко как рут и не надо его маскировать под что-то другое.

Чел, вот я открыл свою git-репу с pkgbuild-ами и правлю билд под новую версию приложения. Я один раз ввожу пароль для подтверждения полномочий, и дальше пакет при пересборке ставится без всякого пароля. А пересборок может быть штук 10 за 10 же минут.

Ты мне что предлагаешь:

  1. Каждый раз вводить чёртов пароль раз в минуту?
  2. Или всю сборку делать от рута?
wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 2)
Ответ на: комментарий от wandrien

dpkg --configure это и есть вызов хук-скрипта. Вопросы и правда местами дурацкие задаются (это в самих пакетах прописано).

«Приложения по умолчанию» - там такого нет.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Там постоянно нкурсес окошки выпригивают во время установки «сложных» пакетов. Блоб нвидии точно такое вызывает. Больше не помню.

BceM_IIpuBeT ★★☆☆☆
()
Последнее исправление: BceM_IIpuBeT (всего исправлений: 1)
Ответ на: комментарий от wandrien

А почему все хорошо? Не потому ли, что их разрабатывали одни и те же люди в расчете на одну и ту же концепцию?

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от firkax

dpkg –configure это и есть вызов хук-скрипта. Вопросы и правда местами дурацкие задаются (это в самих пакетах прописано).

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

«Приложения по умолчанию» - там такого нет.

man update-alternatives

wandrien ★★
()
Ответ на: комментарий от wandrien

Хороший пример. Наглядно показывает как кто-то смешал в кучу разработку софта с администрированием своего локального компа.

Тестовая пересборка не должна ничего ставить в системные директории, она должна ставить в /tmp или в /home. Я вот себе сделал $HOME/bin и аналоги /usr/include и /usr/lib (прописав пути к ним куда надо) - как раз для сборки того что «в разработке». Собрал юзером, им же и запустил (или, если это библиотека - она будет нужна другой сборке). За пределы $HOME оно попадает только тогда, когда результат уже готов для продакшна, хотя бы и моего личного.

Если совсем никак без влезания в /usr (хотя довольно сложно представить такое) - создаёшь контейнер/виртуалку с рутом, пробрасываешь туда (желательно read-only) разрабатываемый исходник, и в этом изолированном от хост-системы месте уже сидишь (фейковым) рутом и запускаешь что угодно. Если что пойдёт не так - просто откатываешь контейнер/виртуалку к исходному состоянию.

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

firkax ★★★★★
()
Ответ на: комментарий от wandrien

alternatives это не совсем «по умолчанию», ну не суть, я так и подозревал что речь про них. И что с ними не так? Ты установил три версии gcc, кто-то же должен решить к какой из них команда gcc будет вести? Или установил три window manager'а, надо же выбрать какой из них будет запускаться по дефолту?

firkax ★★★★★
()
Ответ на: комментарий от firkax

Наглядно показывает как кто-то смешал в кучу разработку софта

разработку софта

Наглядно показывает как кто-то не умеет читать.

И вот так у них всё! У борцов с судой.

wandrien ★★
()
Ответ на: комментарий от firkax
archlinux-java <COMMAND>

COMMAND:
        status          List installed Java environments and enabled one
        get             Return the short name of the Java environment set as default
        set <JAVA_ENV>  Force <JAVA_ENV> as default
        unset           Unset current default Java environment
        fix             Fix an invalid/broken default Java environment configuration
BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от BceM_IIpuBeT

Ну, alternatives делают то же самое, только универсально а не только для джавы. Возможно, универсальность немного повредила понятности.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ты установил три версии gcc, кто-то же должен решить к какой из них команда gcc будет вести?

Если я установил три gcc, я тебе зуб даю: я категорически НЕ хочу, чтобы система даже пыталась начинать думать в сторону возможного «переключения компиляторов».

Один из них, наверняка, кросскомпилятор на ARM, а второй вообще может быть тестовой сборкой из транка апстрима.

Целая сраная подсистема в составе APT существует для решения несуществующих проблем.

Или установил три window manager’а, надо же выбрать какой из них будет запускаться по дефолту?

По чьему «дефолту». Схерали пользовательские настройки тащить в общесистемный дефолт?

Открой для себя /usr/share/xsessions/.

И что с ними не так?

С ними не так примерно всё.

Хотя дебианщикам, привыкшим к тому, что «Ты хочешь удалить firefox? Ну вот тебе тогда chromium. ПОТОМУ ЧТО В СИСТЕМЕ ДОЛЖЕН БЫТЬ КАКОЙ-ТО БРАУЗЕР!», не понять…

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от firkax

Инсталлятор тоже часть программы.

Лицорука. Уже в линуксе инсталляторы появились. Следующий виток эволюции убунты — это винда?

«Правлю билд» это вполне себе разработка софта.

Ну у вас под дебианом может это и «разработка софта», потому что чтобы софт опакетить, нужно чуть ли ни диплом о высшем образовании получить. А у нормальных людей это иначе обстоит.

wandrien ★★
()
Ответ на: комментарий от BceM_IIpuBeT

Когда ты соберешься и «просто» запилишь, а что?

t184256 ★★★★★
()
Ответ на: комментарий от wandrien

Ты установил три версии gcc, кто-то же должен решить к какой из них команда gcc будет вести?

Если я установил три gcc, я тебе зуб даю: я категорически НЕ хочу, чтобы система даже пыталась начинать думать в сторону возможного «переключения компиляторов».

+ очень много. при написании gcc должен запускаться gcc прописанный для этого проекта или выдаваться command not found

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

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

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

hzk
()
Последнее исправление: hzk (всего исправлений: 1)
Ответ на: комментарий от EXL

dnf только начинает медленно, а вот устанавливает пакеты ПО ОЩУЩЕНИЯМ гораздо быстрее apt.

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от windows10

На каком языке быстрей выполнится sleep(1000); - на C++ или на Python ?

ЛОЛШТО

LikeABoss
()
Ответ на: комментарий от fernandos

Какие? Просто от рута зайдите и установите.

В том-то и дело, что не устанавливает. Ругается на какую-то зависимость, что-то на "g".

Korchevatel ★★★★★
()
Ответ на: комментарий от Korchevatel

Ругается на какую-то зависимость, что-то на «g».

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

А вообще, пахнет убитой системой. Не должно emerge sudo ни на какие зависимости ругаться.

dimgel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.