Zenway

Linux - это интересно!

Вы не вошли.

#1 13-04-2020 07:46:25

cdrw
Участник
Здесь с 18-08-2013
Сообщений: 335
LinuxChrome 78.0

Установка Slackware с помощью slackpkg

Решил вот поделиться способом установки Slackware на соседний раздел или в отдельный каталог не прибегая к услугам стандартного установщика. Использую Slackware-current, но обновлять не люблю. Пару раз система заломалась после обновления, поэтому сначала устанавливаю на соседний раздел, проверяю работоспособность, а затем переношу лучшее из накопленного "барахла" из старой системы в новую.


Установка Slackware с помощью slackpkg

С помощью утилиты slackpkg, имеющейся в составе дистрибутива Slackware, можно установить дистрибутив в каталог или в прямо примонтированный раздел. Понятно, что новая версия Slackware будет устанавливаться из действующей. В каталог обычно устанавливают для компилирования "чистых" пакетов или 32-разрядных в сеансе chroot. На раздел же устанавливается система просто "с чистого листа". Я использую этот вариант, чтобы не заморачиваться с установочными флешками или образами.

Представляет это возможным тот факт, что утилита  slackpkg подчиняется переменной ROOT, сменяющей корневой каталог системы. Выглядит это примерно так:

export ROOT=/mychroot

Это если нужно установить дистрибутив в каталог /mychroot. Если же нужно установить дистрибутив в раздел, то предварительно его нужно примонтировать и затем объявить переменную. Например так:

# mkdir -p /mnt/new_slack
# mount /dev/sda7 /mnt/new_slack
# export ROOT=/mnt/new_slack

Не забываем настроить slackpkg на предмет ближайшего скоростного репозитория. Для этого нужно отредактировать файл /etc/slackpkg/mirror хост-системы. В моём случае, ближайшего скоростного репозитория в этом файле не оказалось, поэтому я просто добавил такие строки:

# LITHUANIA (LT)
https://mirrors.atviras.lt/slackware/slackware64-current/

Далее, меняем корневой каталог объявлением переменной, как было сказано выше:

# export ROOT=/mychroot

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

# slackpkg update

slackpkg загрузит базу данных пакетов дистрибутива уже на раздел или в каталог, определённые установленной переменной ROOT.

Теперь устанавливаем по каталогам пакеты:

# slackpkg install a

После скачивания пакетов серии a, окно терминала отрисует следующее диалоговое окно, в котором можно отказаться от установки нежелательных пакетов:

2020-04-13-05-14-53.png

Я отказался от пакетов elilo, grub и lilo. Потому как уже использую зарузчик grub с системой MX-Linux на первом разделе. Таким же образом можно отказаться от установки пакетов и в других сериях пакетов.

Не знаю почему, но при попытке установить следующий каталог ap, система попросила обновить базу данных пакетов. Поэтому следующие команды были такими:

# slackpkg update
# slackpkg install ap
# slackpkg update
# slackpkg install d
# slackpkg update
# slackpkg install k
# slackpkg update
# slackpkg install l
# slackpkg update
# slackpkg install n
...

Ну, и так далее...

Установив дистрибутив в каталог или на раздел, нужно его ещё настроить. Часть настроек, таких как русификация, можно сделать из текстового редактора mcedit, запущенного в хост-системе. Сласкварщики знают как это делать. Напомню.


/etc/profile.d/lang.csh:
Это на случай, если Вы будете использовать в работе оболочку C shell (csh). Похоже, она Патрику нравится, поэтому он её включил в дистрибутив. Можно обойтись и без этого файла, если работа с C_shell не намечается...

#!/bin/csh
#╓────────────────────────
#║ Russian locale
#╚═════════════════════════════════════════════════════─────────────────────────

setenv LC_ALL=
setenv LANG=ru_RU.UTF-8               # определяет языковую локаль системы
setenv LC_CTYPE=ru_RU.UTF-8           # определяет одиночные символы и тип символа (буква, цифра,...)
setenv LC_NUMERIC=C                   # формат чисел
setenv LC_TIME=ru_RU.UTF-8            # формат времени
setenv LC_COLLATE=C                   # используется для сравнения строк
setenv LC_MONETARY=ru_RU.UTF-8        # валюта
setenv LC_MESSAGES=ru_RU.UTF-8        # системные сообщения
setenv LC_PAPER=ru_RU.UTF-8           # формат бумаги
setenv LC_NAME=ru_RU.UTF-8            # формат имён
setenv LC_ADDRESS=ru_RU.UTF-8         # формат адресов
setenv LC_TELEPHONE=ru_RU.UTF-8       # формат телефонов
setenv LC_MEASUREMENT=ru_RU.UTF-8     # формат измерений
setenv LC_IDENTIFICATION=ru_RU.UTF-8  # идентификация

#╓────────────────────────
#║ End scripts
#╚═════════════════════════════════════════════════════─────────────────────────

/etc/profile.d/lang.sh:
Это стандартная русификация bash:

!/bin/sh
#╓────────────────────────
#║ Russian locale
#╚═════════════════════════════════════════════════════─────────────────────────

export LC_ALL=
export LANG=ru_RU.UTF-8               # определяет языковую локаль системы
export LC_CTYPE=ru_RU.UTF-8           # определяет одиночные символы и тип символа (буква, цифра,...)
export LC_NUMERIC=C                   # формат чисел
export LC_TIME=ru_RU.UTF-8            # формат времени
export LC_COLLATE=C                   # используется для сравнения строк
export LC_MONETARY=ru_RU.UTF-8        # валюта
export LC_MESSAGES=ru_RU.UTF-8        # системные сообщения
export LC_PAPER=ru_RU.UTF-8           # формат бумаги
export LC_NAME=ru_RU.UTF-8            # формат имён
export LC_ADDRESS=ru_RU.UTF-8         # формат адресов
export LC_TELEPHONE=ru_RU.UTF-8       # формат телефонов
export LC_MEASUREMENT=ru_RU.UTF-8     # формат измерений
export LC_IDENTIFICATION=ru_RU.UTF-8  # идентификация

#╓────────────────────────
#║ End scripts
#╚═════════════════════════════════════════════════════─────────────────────────

Включение кириллического шрифта в консоли:
/etc/rc.d/rc.font:

#!/bin/sh
#╓────────────────────────
#║ Set russian fonts
#╚═════════════════════════════════════════════════════─────────────────────────

setfont LatArCyrHeb-16
for i in 1 2 3 4 5 6; do
    echo -ne "\033%G" > /dev/tty$i
done

#╓────────────────────────
#║ End scripts
#╚═════════════════════════════════════════════════════─────────────────────────

Включение русской раскладки в консоли:
/etc/rc.d/rc.keymap:

!/bin/sh

#╓────────────────────────
#║ Load the keyboard map. More maps are in /usr/share/kbd/keymaps.
#╚═════════════════════════════════════════════════════─────────────────────────

if [ -x /usr/bin/loadkeys ]; then
   /usr/bin/loadkeys /usr/share/kbd/keymaps/i386/qwerty/ruwin_ct_sh-UTF-8.map.gz
fi

#╓────────────────────────
#║ End scripts
#╚═════════════════════════════════════════════════════─────────────────────────

Все эти скрипты должны быть исполняемыми.

И ещё, для некоторых старых программ нужно подкорректировать файл /usr/share/locale/locale.alias. Вместо строки:

russian         ru_RU.ISO-8859-5

Вставляем три:

russian         ru_RU.UTF-8
ru_RU           ru_RU.UTF-8
ru              ru_RU.UTF-8

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


Создаём файл fstab, если система установлена на раздел:

/dev/sda6        swap             swap        defaults            0   0
/dev/sda7        /                ext3        defaults            1   1
devpts           /dev/pts         devpts      gid=5,mode=620      0   0
proc             /proc            proc        defaults            0   0
tmpfs            /dev/shm         tmpfs       nosuid,nodev,noexec 0   0

Скрипт для вхождения в chroot:

#!/bin/bash
# chroot.sh

# Выход, если не указан каталог
if [ -z "$1" ]; then
     echo "chroot folder not specified"
     exit 1
elif [ "$1" = -h ]; then
     echo "./chroot.sh <chroot-folder>"
     exit 1
fi

location="$1"
cd "$location" || exit 1

# Монтирование, база
mount -t proc proc "$1"/proc || exit 1
mount -o bind /sys "$1"/sys  || exit 1
mount -o bind /dev "$1"/dev  || exit 1

# Монтирование дополнительного раздела, который уже смонтирован на хосте
# первое - путь монтирования хоста, второе - монтирование chroot
# mount -B /mnt/datalinux2 "$1"/mnt/data

# Для доступа в интернет
cp /etc/resolv.conf "$1"/etc/resolv.conf

# Предотвращение ошибок D-Bus
cp /var/lib/dbus/machine-id "$1"/var/lib/dbus/machine-id

# Вход в окружение chroot
chroot "$location" /bin/bash -l

# Размонтирование после выхода из chroot
# umount "$1"/mnt/data
umount "$1"/{proc,sys,dev}/ || exit 1

echo "Done"

Его скопипастите и сохраните в домашнем наталоге /root под названием chroot.sh и сделайте запускаемым.

Запускаем сеанс chroot в работу:

# sh ./chroot.sh /mnt/new_slack

Делаем доступными системные библиотеки:

# ldconfig

Обновляем кэш шрифтов, если хотим запустить X:

# fc-cache

Установим пароль root:

# passwd

Добавляем пользователя cdrw (добавьте свой аккаунт):

# useradd -m -g users -G users,wheel,floppy,audio,video,cdrom,plugdev,power,netdev -s /bin/bash cdrw

Добавляем пользователя cdrw (добавьте свой аккаунт) в группу sudo:

# groupadd sudo
# usermod -a -G sudo cdrw

В текстовом редакторе открываем файл /etc/sudoers и раскомментируем строку "%wheel ALL=(ALL) ALL":

##
## Спецификация пользовательских привилегий
##
root ALL=(ALL) ALL

## Раскомментировать, чтобы позволить пользователям группы wheel
## выполнять любую команду.
%wheel ALL=(ALL) ALL

## То же самое без пароля
# %wheel ALL=(ALL) NOPASSWD: ALL

## Раскомментировать, чтобы позволить пользователям группы sudo
## выполнять любую команду.
# %sudo ALL=(ALL) ALL

## Раскомментировать, чтобы позволить любому пользователю запускать
## sudo, если он знает пароль пользователя, который выполняет команду
## от имени (по умолчанию root).
# Defaults targetpw  # Запросить пароль у целевого пользователя.
# ALL ALL=(ALL) ALL  # ПРЕДУПРЕЖДЕНИЕ: Использовать это только вместе с
                     # 'Defaults targetpw'.

Теперь открываем диалоговою утилиту pkgtool и с её помощью настраиваем подключение к сети и выставляем временную зону перейдя по пункту Setup:

# pkgtool

2020-04-13-04-47-15.png

2020-04-13-04-48-34.png

2020-04-13-04-49-12.png

Выходим из утилиты pkgtool. Затем даём команду выхода из скрипта chroot.sh - exit:

# exit

Пожалуй всё. После установки системы на соседний раздел, можно перезагрузить компьютер. У меня первой системой стоит MX-Linux с загрузчиком grub, поэтому я регистрирую вновь установленную систему следующей командой:

# sudo update-grub

После перезагрузки в меню grub появится пункт выбора вновь установленной системы.


14103011_GgHo.png

Вне форума

#2 13-04-2020 12:37:57

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: Установка Slackware с помощью slackpkg

slackware64-current-mini-install.iso - этого достаточно будет для вышеописанных действий, или лучше dvd?

https://slackware.nl/slackware/slackware64-current-iso/
[ ]    slackware64-current-install-dvd.iso    2020-04-12 23:16     3.1G    
[ ]    slackware64-current-mini-install.iso    2020-04-12 23:17     113M


Долой DE! Даёшь WM!

Вне форума

#3 13-04-2020 12:42:30

redix
Участник
Откуда: Shangri-La
Здесь с 14-02-2013
Сообщений: 2,398
LinuxChrome 81.0

Re: Установка Slackware с помощью slackpkg

Если поднимешь соединение при установке, тогда и мини достаточно, если нет то дивидюк.


In Tux We Trust

Вне форума

#4 13-04-2020 13:10:37

cdrw
Участник
Здесь с 18-08-2013
Сообщений: 335
LinuxChrome 72.0

Re: Установка Slackware с помощью slackpkg

BigOrange пишет:

slackware64-current-mini-install.iso - этого достаточно будет для вышеописанных действий, или лучше dvd?

Немного не понял вопроса. Я как раз имитировал действия инсталлера системы, который есть и в slackware64-current-mini-install.iso, и в dvd, чтобы не использовать их. Смысл такой - использовать идущую в составе Slackware утилиту для обновления пакетов slackpkg, в качестве инсталлера системы на соседний раздел. Но тогда требуется донастройка установленного дистра, которую обычно делает штатный установщик. Вот я и попытался воспроизвести.

В этот раз что то пошло не так. Что то с ssl сертификатами. Раньше такого не было... Браузеры во вновь установленной системе кричат, что подозрительный трафик с моего компа, требуют доказать что я не киборг и предлагают потыкать в картинки с семафорами. Буду ковырять, может какую настройку новую ввели... Во всяком случае каталог /etc/ssl/certs был пуст почему то.

Добавлено спустя 07 мин 50 с:
Сейчас попробую распаковать инсталлер, зачрутиться и повторить  установку из него.


14103011_GgHo.png

Вне форума

#5 13-04-2020 13:28:46

redix
Участник
Откуда: Shangri-La
Здесь с 14-02-2013
Сообщений: 2,398
LinuxChrome 81.0

Re: Установка Slackware с помощью slackpkg

cdrw пишет:

Что то с ssl сертификатами.

Не оно? Это относится к ca-certificates-mozilla, не далее как сегодня при обновлении был выпендреж.


In Tux We Trust

Вне форума

#6 13-04-2020 13:50:40

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,303
LinuxUnknown

Re: Установка Slackware с помощью slackpkg

@cdrw, у меня слаки нет. я так понял, главное чтобы в составе образа была slackpkg
@redix, надеюсь смогу, проводочек от роутера поймет же ))


Долой DE! Даёшь WM!

Вне форума

#7 13-04-2020 14:22:18

cdrw
Участник
Здесь с 18-08-2013
Сообщений: 335
LinuxChrome 72.0

Re: Установка Slackware с помощью slackpkg

BigOrange пишет:

@cdrw, у меня слаки нет. я так понял, главное чтобы в составе образа была slackpkg
@redix, надеюсь смогу, проводочек от роутера поймет же ))

Я сейчас устанавливаю из MX-Linux.

По командам:

sudo mc

Монтирую подготовленный для устаноки раздел:

mkdir /mnt/sda7
mount /dev/sda7 /mnt/sda7

Скачиваю туда весь дистр:

rsync -av --progress rsync://slackware.uk/slackware/slackware64-current/slackware64 /mnt/sda7/

После этого...
Каталог для распаковки образа установщика

mkdir /mychroot
cd /mychroot

Скачиваю туда образ с установщиком:

wget http://slackware.uk/slackware/slackware64-current/isolinux/initrd.img

Распаковать командой

xz --decompress -cd initrd.img | cpio -dvim
rm -f initrd.img

Монтируем и входим в chroot:

mount --bind /dev /mychroot/dev
mount --bind /proc /mychroot/proc
mount --bind /sys /mychroot/sys
chroot /mychroot

Теперь в chroot'е копипастим по одной команды:

source /etc/profile
setup

Всё! Как с DVD:

10.png
что такое пнг

Добавлено спустя 01 мин 25 с:
Только раздел не форматировать из сетупа! Сотрёшь скачанный туда дистр!

Добавлено спустя 07 мин 01 с:
Всё таки новое окошко в инсталлере появилось

18.png

Надо выяснять, что за формат такой...

Добавлено спустя 13 мин 26 с:
Всё, буду проверять инет...

19.png

Добавлено спустя 33 мин 54 с:

redix пишет:
cdrw пишет:

Что то с ssl сертификатами.

Не оно? Это относится к ca-certificates-mozilla, не далее как сегодня при обновлении был выпендреж.

Всё. Точно что то наменяли в инсталляторе. Нужно разбираться. По второму методу всё установилось, никаких проблем с инетом нет.

Добавлено спустя 49 мин 34 с:
Нашёл про новое окошко здесь. Ничего для меня существенного. Я всё равно этим редактором не пользуюсь...


14103011_GgHo.png

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] claudebot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.018 сек, 9 запросов выполнено - Использовано памяти: 1.71 Мбайт (Пик: 1.8 Мбайт) ]