Translate

Показаны сообщения с ярлыком RHEL. Показать все сообщения
Показаны сообщения с ярлыком RHEL. Показать все сообщения

пятница, 5 октября 2018 г.

Настройка IDLE для Python3.7

В работе на виртуальной машине для VB (OS Red Hat Enterprise Linux Server release 7.3) понадобилось использовать графическую оболочку python idle3.7
Виртуальная машина шла сразу с установленным Python3.7, но при запуске idle3.7 возникала ошибка вида:
IDLE can't import Tkinter. Your Python may not be configured for Tk.
Сразу скажу, что множество советов из Интернета на решения данной проблемы путем установки модулей ниже не работают.
# yum search tkinter
# yum install python3-tkinter-3.3.2-17.fc20.x86_64
# yum search tk-devel
# yum install tk-devel.x86_64
и т.п.
Потому, что python нужно пересобрать с tkintel используя исходники. Прочитал об этом еле заметной строчкой на stackoverflow, где дали совет что все эти модули ставить нет смысла.
Для сборки tkinter необходимо поставить две библиотеки tcl и tk. Для Python3.7 необходимы версии 8.6 и выше. Информация здесь. Установка стандартная, для команды configure не заполнял значение options, чтобы все по умолчанию поставилось. Действия выполнить для tcl и tk.
# cd tcl8.6.8/unix
# ./configure options
# make
# make test
# make install
Качаем Python (примеры для версии 3.7.1rc1)
# tar -xzf Python-3.7.1rc1.tgz
# cd Python-3.7.1rc1.tgz
и т.п.
Установка Python, в первую очередь нужно сделать конфигурацию, чтобы при сборке подтянулись установленные библиотеки tcl и tk.
# ./configure --with-tcltk-includes="-I/usr/include" --with-tcltk-libs="-L/usr/local/lib -ltcl8.6 -L/usr/local/lib -ltk8.6"
# make
*** WARNING: renaming "_tkinter" since importing it failed: libtcl8.6.so: cannot open shared object file: No such file or directory
Проблема решается тем, что необходимо указать путь до /usr/local/lib/ (где установлены tcl и tk) в переменной LD_LIBRARY_PATH. Затем собрать и установить Python.
# export LD_LIBRARY_PATH=/usr/local/lib/
# make
# make install
Теперь Idle запускается.

среда, 22 августа 2018 г.

Oracle Linux/RHEL experience

Установка Oracle Linux на машину с Windows
C Oracle Delivery необходимо скачать образ последней версии и с помощью утилиты rufus-usb создать загрузочный usb-диск. Затем идет процесс стандартной установки, за исключение указании диска на который будет установлен Linux. Нужно указать отдельный логический диск, раздел указать "\" и затем согласиться с форматированием.
После установки Linux не будет возможности загрузится под Windows, т.к. будет переписан раздел boot.
Первое, что необходимо сделать, это смонтировать ntfs-диски чтобы их было видно под Linux (использовать root):
# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -ivh epel-release-latest-7.noarch.rpm
# yum repolist
# yum -y install ntfs-3g
# yum install fuse
# modprobe fuse
# fdisk -l

Disk /dev/sda: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x14ef3102

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    25167871    12582912   27  Hidden NTFS WinRE
/dev/sda2   *    25167872    25372671      102400    7  HPFS/NTFS/exFAT
/dev/sda3        25372672   283594751   129111040    7  HPFS/NTFS/exFAT
/dev/sda4       283594752   488394751   102400000    f  W95 Ext'd (LBA)
/dev/sda5       283596800   375754751    46078976    7  HPFS/NTFS/exFAT
/dev/sda6       375756800   406474751    15358976    7  HPFS/NTFS/exFAT
/dev/sda7       406476800   488394751    40958976    7  HPFS/NTFS/exFAT
# blkid
/dev/sda1: LABEL="PQSERVICE" UUID="9E38449238446AFB" TYPE="ntfs" 
/dev/sda2: LABEL="SYSTEM RESERVED" UUID="0CE445CBE445B82A" TYPE="ntfs" 
/dev/sda3: LABEL="Packard Bell" UUID="FE4C47F04C47A26F" TYPE="ntfs" 
/dev/sda5: LABEL="Vega" UUID="BC04FC7C04FC3B4A" TYPE="ntfs" 
/dev/sda6: LABEL="linux 2" UUID="AA90C88690C85B09" TYPE="ntfs" 
/dev/sda7: LABEL="linux" UUID="e4a041af-bb15-455b-899f-4076d1047dfe" TYPE="xfs"
На основании команд fdisk -l и blkid можно сделать вывод какой из дисков содержит в себе раздел загрузки Windows.
Затем производим монтирование
# mkdir /mnt/ntfs3
# mount -t ntfs-3g /dev/sda3 /mnt/ntfs3
# vim /etc/fstab
insert line:
/dev/sda3                                 /mnt/ntfs3              ntfs-3g defaults        0 0
Затем нужно прописать boot для Windows:
# vim /etc/grub.d/40_custom
insert text:
menuentry "Windows 7" {
set root='hd0,gpt2' chainloader /mnt/ntfs3/Windows/Boot/EFI/bootmgfw.efi boot
}
where  hd0, 0 = sda and gpt2, 2 = 3(sda3), chainloader is path to bootmgfw.efi.
Then
On BIOS-based machines, issue the following command as root:
# grub2-mkconfig -o /boot/grub2/grub.cfg
On UEFI-based machines, issue the following command as root:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.1.12-112.16.4.el7uek.x86_64
Found initrd image: /boot/initramfs-4.1.12-112.16.4.el7uek.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-c45987eb98f049649f064e9d79b70e58
Found initrd image: /boot/initramfs-0-rescue-c45987eb98f049649f064e9d79b70e58.img
Found Windows Recovery Environment (loader) on /dev/sda1
Found Windows 7 (loader) on /dev/sda2
done
Все, можно загружаться под Windows.

ULN-CA-CERT is expired.
Ошибка при использовании yum "The certificate /usr/share/rhn/ULN-CA-CERT is expired. Please ensure you have the correct certificate and your system time is correct.", решается так:
# cp /usr/share/rhn/ULN-CA-CERT /usr/share/rhn/ULN-CA-CERT.old
# wget https://linux-update.oracle.com/rpms/ULN-CA-CERT.sha2
# cp ULN-CA-CERT.sha2 /usr/share/rhn/ULN-CA-CERT

Очистка места
Виртуальные машины по умолчанию создаются с ограниченным кол-вом свободного места на смонтированных дисках. Как добавить места, я уже ранее писал здесь . Мы же рассмотрим варианты очистки места.
1. Очистка кэша yum:
# yum clean packages
Eliminate  any cached packages from the system.  Note that pack-
ages are not automatically deleted after they are downloaded.

# yum clean headers
Eliminate all of the header files which yum uses for  dependency
resolution.

# yum clean all
Runs yum clean packages and yum clean headers as above.
Место освобождается неплохо:
# df -h /dev/sda3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        25G   20G  3.5G  86% /

# yum clean all
Loaded plugins: langpacks, rhnplugin, ulninfo
Cleaning repos: dgoodwin-subscription-manager epel epel-subscription-manager
              : mongodb-org-3.6 ol7_UEKR4 ol7_latest ol7_optional_latest
              : ol7_spacewalk26_client ol7_spacewalk26_server ol7_x86_64_UEKR4
              : ol7_x86_64_latest pgdg10-updates-testing
Cleaning up everything

# df -h /dev/sda3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        25G  6.3G   18G  27% /

четверг, 22 марта 2018 г.

Установка драйвера ruby mongodb на RHEL 7.3

Для нужд проекта начал изучать MongoDB. Взял за основу книгу Kyle Banker: MongoDB in Action, книга 2011 года, но написана интересно. Код примеров написан на ruby. Поэтому пришлось на виртуалку поставить драйвер ruby для mongodb. И тут началось :).
Использовал tutorial:
Команда:
# gem update --system
прошла.
На командах ниже появилась ошибка, хотя сам ruby был установлен
# gem install mongo
# gem install bson_ext
.....
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h
.....
Советы в целом стандартные. Но не помогло.
Нашлось решение по ссылке
На команде все сломалось
# rvm requirements run
.....
No package libyaml-devel available
.....
Выяснилось, что в стандартную поставку пакет не входит, при попытке поставить через yum install libyaml-devel все получаем туже ошибку. Предлагались решения через subscription manager, я даже на linux.oracle.com ради этого зарегистрировался. Но все бесполезно. Даже такой вариант не подошел:
[root@localhost mail]# wget ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/7rolling/x86_64/os/Packages/libyaml-devel-0.1.4-10.el7.x86_64.rpm
--2018-03-22 17:04:14--  ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/7rolling/x86_64/os/Packages/libyaml-devel-0.1.4-10.el7.x86_64.rpm
           => ‘libyaml-devel-0.1.4-10.el7.x86_64.rpm’
Resolving mirror.switch.ch (mirror.switch.ch)... 130.59.113.36, 2001:620:0:1002::20
Connecting to mirror.switch.ch (mirror.switch.ch)|130.59.113.36|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /pool/4/mirror/scientificlinux/7rolling/x86_64/os/Packages ... done.
==> SIZE libyaml-devel-0.1.4-10.el7.x86_64.rpm ... done.
==> PASV ... done.    ==> RETR libyaml-devel-0.1.4-10.el7.x86_64.rpm ... 
No such file ‘libyaml-devel-0.1.4-10.el7.x86_64.rpm’.
Нашел, что некоторым помогает сначала установить просто
# yum install libyaml
и ошибка выше уйдет. Поставил, но не помогло. Взял по ссылке версию libyaml-devel, как у libyaml-0.1.4-11.el7_0.x86_64, скачал и выполнил:
[root@localhost Downloads]# rpm -Uvh libyaml-devel-0.1.4-11.el7_0.x86_64.rpm
warning: libyaml-devel-0.1.4-11.el7_0.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:libyaml-devel-0.1.4-11.el7_0     ################################# [100%]
Далее все Ок:
# rvm requirements run
# rvm install 2.5.0
# rvm list
# rvm get stable --auto-dotfiles
# gem update --system
# gem install mongo
# gem install bson_ext
Добавить путь до ruby в PATH. Все.