31 (06.07.2011 12:07:30 отредактировано SergMarkov)

Renato Rosse пишет:

Еще по поводу пакетов - когда нужно установить новый пакет, первым делом ищу на http://slackbuilds.org, ибо считаю, что используя слакбилд пакет получается именно под мою архитектуру и особенности системы.

Используя слакбилд пакет, как в слакбилде и написано, получается под абстрактный i686. В случае базовых системных пакетов это лучший выбор, в случае прикладных программ лучше настроить опции компиляции и линковки под себя

32

SergMarkov, почему тогда в названии созданного слакбилдом пакета есть (в моем случае) x86_64 на 64-битном компьютере?

Наша газета.
Awesome - DE не нужно.

33 (06.07.2011 12:42:09 отредактировано SergMarkov)

Renato Rosse пишет:

SergMarkov, почему тогда в названии созданного слакбилдом пакета есть (в моем случае) x86_64 на 64-битном компьютере?

elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"

makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

В случае x64 под такой же абстрактный x64, как и в случае i686
Впрочем даже в случае базовых системных пакетов где оставить "православные" :-) опции, а где лучше сделать свои сугубо индивидуально. Например qt лучше со своими и включенным raster, gtk лучше вообще не трогать, лучше не станет, хуже запросто :-)
Для прикладных программ практически всегда лучше своя настройка

34

Renato Rosse пишет:

используя слакбилд пакет получается именно под мою архитектуру и особенности системы

Это верно в части установленных на момент сборки библиотек, при условии использования соответствующих средств автоконфигурирования (например, ./configure из autotools).
И неверно в части "прибитых гвоздиком" внутри SlackBuild-а параметров: CCFLAGS, LDFLAGS, параметров configure --with-option, --without-option, --enable-option, --disable-option, и т.п.

35

SergMarkov пишет:
Renato Rosse пишет:

SergMarkov, почему тогда в названии созданного слакбилдом пакета есть (в моем случае) x86_64 на 64-битном компьютере?

elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"

makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

В случае x64 под такой же абстрактный x64, как и в случае i686

Всмысле абстрактный x64 - что же в этой архитектуре абстрактного - вроде ясно, что для 64-битных систем/процессоров?

Наша газета.
Awesome - DE не нужно.

36 (06.07.2011 13:03:14 отредактировано SergMarkov)

Renato Rosse пишет:

Всмысле абстрактный x64 - что же в этой архитектуре абстрактного - вроде ясно, что для 64-битных систем/процессоров?

Потому что процессоров x64 как собак нерезаных :-) и слакбилд настроен именно что на средний или абстрактный x64 а не на какой то конкретный.
Вообще говоря слакбилд со skackbuild.org в своем природном виде это далеко не самый лучший выбор если делать систему под себя. Проги в них со стандартными опциями и настройками, если это устраивает, ну и прекрасно, если нет, то лучше его править ручками, делать свои опции конфигурирования самой проги и заменять опции компиляции и линковки на свои. Если первое приходится делать ручками (но и тут можно как то автоматизировать) то второе делается через простейший скриптик с sed. Впрочем еще лучше сделать свой стандартный слакбилд и править опции конфигурирования проги в нем, это получается проще

37

SergMarkov, bormant, спасибо.

Наша газета.
Awesome - DE не нужно.

38 (06.07.2011 20:27:04 отредактировано SidER)

bormant пишет:

Правильно ли я понял, что вход в систему произведён от root в обоих случаях? Или в каком-то права были повышены при помощи su/sudo или их аналога?

Вход в систему осуществляется по средствам gdm(предварительно выставив runlevels 4 в /etc/inittab) под обычным пользователем, затем gnome-terminal > su > locale. В консоли я заходил под root.

Кроме того, в ответе №26 просмотрел один существенный момент -- переменная окружения LANG вообще не установлена во втором случае. Поэтому смотреть надо про LANG, а не про posix.
Похожее поведение наблюдалось при использовании содержащего ошибку su.
Если аналогичное делается в скрипте, может быть что-то наподобие "export LANG="
или "unset LANG".

Команда cat .profile | grep LANG ни чего не выдает.
Вот собственно сам .profile:

+ открыть спойлер

# /etc/profile: This file contains system-wide defaults used by
# all Bourne (and related) shells.

# Set the values for some environment variables:
export MINICOM="-c on"
export MANPATH=/usr/local/man:/usr/man
export HOSTNAME="`cat /etc/HOSTNAME`"
export LESSOPEN="|lesspipe.sh %s"
export LESS="-M"

# If the user doesn't have a .inputrc, use the one in /etc.
if [ ! -r "$HOME/.inputrc" ]; then
  export INPUTRC=/etc/inputrc
fi

# Set the default system $PATH:
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"

# For root users, ensure that /usr/local/sbin, /usr/sbin, and /sbin are in
# the $PATH.  Some means of connection don't add these by default (sshd comes
# to mind).
if [ "`id -u`" = "0" ]; then
  echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null
  if [ ! $? = 0 ]; then
    PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH
  fi
fi

# I had problems with the backspace key using 'eval tset' instead of 'TERM=',
# but you might want to try it anyway instead of the section below it.  I
# think with the right /etc/termcap it would work.
# eval `tset -sQ "$TERM"`

# Set TERM to linux for unknown type or unset variable:
if [ "$TERM" = "" -o "$TERM" = "unknown" ]; then
TERM=linux
fi

# Set ksh93 visual editing mode:
if [ "$SHELL" = "/bin/ksh" ]; then
  VISUAL=emacs
#  VISUAL=gmacs
#  VISUAL=vi
fi

# Set a default shell prompt:
#PS1='`hostname`:`pwd`# '
if [ "$SHELL" = "/bin/pdksh" ]; then
PS1='! $ '
elif [ "$SHELL" = "/bin/ksh" ]; then
PS1='! ${PWD/#$HOME/~}$ '
elif [ "$SHELL" = "/bin/zsh" ]; then
PS1='%n@%m:%~%# '
elif [ "$SHELL" = "/bin/ash" ]; then
PS1='$ '
else
# PS1='\u@\h:\w\$ '
PS1='\[\e[1;32m\][\u@\h \W]\$\[\e[0m\] '
fi
PS2='> '
export PATH DISPLAY LESS TERM PS1 PS2

# Default umask.  A umask of 022 prevents new files from being created group
# and world writable.
umask 022

# Notify user of incoming mail.  This can be overridden in the user's
# local startup file (~/.bash.login or whatever, depending on the shell)
if [ -x /usr/bin/biff ]; then
biff y 2> /dev/null
fi

# Append any additional sh scripts found in /etc/profile.d/:
for profile_script in /etc/profile.d/*.sh ; do
  if [ -x $profile_script ]; then
    . $profile_script
  fi
done
unset profile_script

# For non-root users, add the current directory to the search path:
if [ ! "`id -u`" = "0" ]; then
PATH="$PATH:."
fi

PS:bormant, по поводу репозитория с дополнительными зависимостями все понятно.И еще хотел спросить: ни чего страшного если устанавливать пакеты для разных версий слаки(например 13.37 и 13.1)

39

ABulychev, тщательнее надо (q).
Содержимое /etc/profile (а именно его вы привели в предыдущем сообщении) я себе представляю.
Если положили его в ~/.profile -- в этом мало толку, уберите.

Установка LANG там проста:
/etc/profile

# Append any additional sh scripts found in /etc/profile.d/:
for profile_script in /etc/profile.d/*.sh ; do
  if [ -x $profile_script ]; then
    . $profile_script
  fi
done

/etc/profile.d/lang.sh

export LANG=ru_RU.UTF-8
export LC_COLLATE=C

Вот только вся эта прелесть не отрабатывает, если bash запускается не как login shell.

К вашему случаю отношение имеет вряд ли -- обратите внимание, в gnome-terminal выхлоп "LANG=", то есть либо пустое значение, либо переменной в окружении нет, точнее скажет declare | grep ^LANG.

Теперь немного о том, на что похоже поведение. Удаление переменных из окружения дочернего процесса с повышенными привилегиями является обычной практикой. Но, например, в составе Slackware-13.1 su имел ошибку в логическом условии и очищал переменные LANG, LC_* вместо того, чтобы оставлять их. Подробнее: http://www.slackware.ru/wiki/BugFix/13.1/su

Резюме.
Пользуйтесь "su -", "su -l" вместо "su". gnome-terminal > su - > locale. От "просто su" будут и другие проблемы, например, принадлежащие root-у файлы в домашнем каталоге пользователя.

40

Это та же самая ошибка, что описана тут: http://www.slackware.ru/wiki/BugFix/13.1/su.

/source/a/shadow/shadow-4.1.4.3.tar.xz
src/libmisc/env.c
строка 254:
-            if (strchr (*cur, '/') != NULL) {
+            if (strchr (*cur, '/') == NULL) {

41

Т.е. в идеале надо как надо ставить пакеты в слаке, дабы они работали оптимизированно под оборудование - собирать из исходников свои txz/tgz?

Наша газета.
Awesome - DE не нужно.

42

Renato Rosse пишет:

Т.е. в идеале надо как надо ставить пакеты в слаке, дабы они работали оптимизированно под оборудование - собирать из исходников свои txz/tgz?

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

43

bormant пишет:

Резюме.
Пользуйтесь "su -", "su -l" вместо "su". gnome-terminal > su - > locale. От "просто su" будут и другие проблемы, например, принадлежащие root-у файлы в домашнем каталоге пользователя.

Спасибо за помощь и разъяснение, теперь все встало на на свой места. Будем дальше разбираться).
Renato Rosse, почитайте на досуге статью SergMarkovа об установке, настройке и оптимизации(там основы излагаются) slackware  называется "Легкая slackware на пальцах".Мне статья очень понравилась написано понятно и по существу, за это ему огромное спасибо.

44

SergMarkov пишет:
Renato Rosse пишет:

Т.е. в идеале надо как надо ставить пакеты в слаке, дабы они работали оптимизированно под оборудование - собирать из исходников свои txz/tgz?

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

Не нашел описание редактирования program.SlackBuild, и в частности SLKCFLAGS и архитектуры для оптимизации.
Подскажите, если знаете.

ABulychev пишет:

Спасибо за помощь и разъяснение, теперь все встало на на свой места. Будем дальше разбираться).
Renato Rosse, почитайте на досуге статью SergMarkovа об установке, настройке и оптимизации(там основы излагаются) slackware  называется "Легкая slackware на пальцах".Мне статья очень понравилась написано понятно и по существу, за это ему огромное спасибо.

Перечитывал раз 50 эту статью ab

Наша газета.
Awesome - DE не нужно.

45 (07.07.2011 20:46:25 отредактировано SergMarkov)

Renato Rosse пишет:

Не нашел описание редактирования program.SlackBuild, и в частности SLKCFLAGS и архитектуры для оптимизации.
Подскажите, если знаете.

Собственно там правятся следующие вещи
- что идет после ./configure - это опции самой программы
К примеру вот из darktable.SlackBuild
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --build=$ARCH-slackware-linux \

Первое - куда ставится, остальное пути для составляюших пакета, это собственно что есть практически в любом слакбилде. Для простеньких программ этого вполне достаточно, более сложные имеют больше опций настройки. Чтобы узнать остальные опции конфигурирования  распаковываем сорцы и в папке с ними набираем в терминале ./configure --help, смотрим опции и записываем в слакбилд.
Второе касается опций  CFLAGS CXXFLAGS и LDFLAGS, это настройки компиляции и линковки под свой процессор. Тут к сожалению мало что вам могу сказать, поскольку у меня не X64. Посмотреть эти флаги для вашего процессора можно в вики гентушников, которые традиционно много внимания уделяют таким вещам.

46

Renato Rosse пишет:

Перечитывал раз 50 эту статью ab

И не помогло? Гуглить не пробовали на тему CFLAGS optimizations (на сколько я понимаю CFLAGS равносильно SLKCFLAGS, но могу ошибаться) или остается только одно читать и разбираться с GCC Optimize Options

47

Я, к примеру, не считаю, что разбираюсь в опциях компилятора лучше gcc и поэтому использую:

 Консоль:

gentoo-laptop log # grep FLAGS /etc/make.conf
CFLAGS="-march=native -mtune=native -O2 -pipe"
CXXFLAGS=${CFLAGS}

Был, был и весь вышел...

48 (07.07.2011 21:16:55 отредактировано SergMarkov)

Lupo Alberto пишет:

Я, к примеру, не считаю, что разбираюсь в опциях компилятора лучше gcc и поэтому использую:

 Консоль:

gentoo-laptop log # grep FLAGS /etc/make.conf
CFLAGS="-march=native -mtune=native -O2 -pipe"
CXXFLAGS=${CFLAGS}

Оптимальные флаги находятся методом научного тыка :-) и последующим замером производительности
У меня к примеру это
-O3 -march=native -mtune=native -fomit-frame-pointer -pipe -msse4 -falign-jumps=1 -falign-labels=1 Тоже самое стоит и в опциях cmake и qmake. Но это только для конкретного компа и флаги выбраны по замерам производительности. Впрочем native pipe и fomit применимы и в самом общем случае. Единственно что с fomit нельзя пересобирать gtk.  Да-да :-) -O3 это некошерно, но проблем с ним не имел, к тому же не сервер с доками на лямы баксов
Плюс, что давно ставят практически везде, но почему то не ставит Патрик
LDFLAGS="-Wl,-O1 -Wl,--as-needed

49

SergMarkov пишет:

Второе касается опций  CFLAGS CXXFLAGS и LDFLAGS, это настройки компиляции и линковки под свой процессор. Тут к сожалению мало что вам могу сказать, поскольку у меня не X64. Посмотреть эти флаги для вашего процессора можно в вики гентушников, которые традиционно много внимания уделяют таким вещам.

Например, здесь по-моему не шибко много этих флагов указывается, также в хэндбуке. И главное в этом деле не переусердствовать, а то как гласит народная мудрость с дури можно кое-что сломать).

50 (07.07.2011 21:32:11 отредактировано SergMarkov)

ABulychev пишет:

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

Это да :-) Но в принципе есть самые общие флаги, native, pipe, fomit, остальное от лукавого и надо мерять производительность на конкретном компе с разными флагами
Немного не здесь, вот где флаги под процессор, они по линкам
http://en.gentoo-wiki.com/wiki/Safe_Cflags
но в принципе лучше не парить себе мозги и ставить native

51

to SergMarkov,  не подскажите чем можно замерять производительность системы?
to Renato Rosse,  посмотрите эту, там есть описание некоторых флагов на русском языке(может пригодится).

52

ABulychev пишет:

to SergMarkov,  не подскажите чем можно замерять производительность системы?

Теми программами, которые вы постоянно используете и замерять время исполнения типичных задач. Собственно это единственно корректный метод.
Скорость интерфейса можно померять gtkperf и qtperf

53

SergMarkov пишет:

но в принципе лучше не парить себе мозги и ставить native

То есть получается native подтягивает все флаги под каждый тип процессора ?

54

ABulychev пишет:

То есть получается native подтягивает все флаги под каждый тип процессора ?

man gcc

-mcpu=cpu_type
           ...

           Native Linux/GNU toolchains also support the value native, which selects the best architecture option for the host
           processor.  -mcpu=native has no effect if GCC does not recognize the processor.

-mtune=cpu_type
           Set only the instruction scheduling parameters for machine type cpu_type.  The instruction set is not changed.

           Native Linux/GNU toolchains also support the value native, which selects the best architecture option for the host
           processor.  -mtune=native has no effect if GCC does not recognize the processor.
Был, был и весь вышел...

55 (07.07.2011 21:48:31 отредактировано SergMarkov)

ABulychev пишет:

То есть получается native подтягивает все флаги под каждый тип процессора ?

Нет, не все, есть множество процессоронезависимых флагов
В принципе оптимальные флаги компиляции это далеко не единственный метод повышения производительности, такое же , если не большое значение имеет выбор оптимальных программ и настройка уже скомпилированных программ, При просмотре HD видео к примеру большой значение имеет выбор плеера с поддержкой многопоточности и vdpau, другой пример - вы можете великолепно откомпилировать IceWM, но если оставить в его темах gradient, которые авторы тем суют от лени куда не попадя, то тормозить на тяжелых темах он может едва ли не хуже четвертых кед.

56

Renato Rosse пишет:

Не нашел описание редактирования program.SlackBuild, и в частности SLKCFLAGS и архитектуры для оптимизации.
Подскажите, если знаете.

тыц
есть конечно много мнений на этот вопрос , но (!) - весьма существенное - то что выставлено по дефолту в(практически любом) слакбилде это практически золотая середина и дело не процессоре как таковом ( да будь он хоть десятиядерным турбо-монстром) дело в коде ! .. поясню :
... к примеру у вас corei7 и вы выкрутили "все ручки на красное" , выставили MAKEFLAGS="-j9" - превосходно ! вы надеетесь таким образом собрать Gnome3  за три часа - не надейтесь этого не будет , более того , то что без проблем за двенадцать часов собирается на дохленьком Целероне , на вашем монстре встанет колом через пять минут с какой нибудь потешной ошибкой и вы никогда не найдёте её причин . Вопрос почему ? Всё очень просто - те кто пишет софт , пишет его по вдохновению на том что есть и в 99% случаев "ложит с большим прибором" на ваши многоядерные монстры и параллелизм , поэтому не стоит возлагать большие надежды на то , что какой нибудь там Inkscape или VLC вдруг начнёт собираться в двадцать раз быстрее если запустить его в 9 нитей сборки - не факт что вообще соберётся , а если соберётся то будет правильно работать . Читайте доки на то что хотите собирать , как правило разработчики явно объявляют о поддержке многоядерности и параллелизма ...

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

57

Lupo Alberto, SergMarkov, теперь стало понятнее. Спасибо.

58 (07.07.2011 22:33:19 отредактировано SergMarkov)

gramozeka пишет:

тыц
есть конечно много мнений на этот вопрос , но (!) - весьма существенное - то что выставлено по дефолту в(практически любом) слакбилде это практически золотая середина .

Ну :-) это как сказать вряд ли   SLKCFLAGS="-O2 -march=i486 -mtune=i686"
и отсутствие LDFLAGS "золотая середина" для всех прог, для системных да, для прикладных вообще то под большим сомнением