LINUX.ORG.RU

Сообщения denton

 

Резервное копирование попадает в бесконечный цикл

Форум — General

Привет всем!

Долгое время пользовался rsync для резервного копирования системы и данных, и все было хорошо. Вышел новый минорный Дебиан, и я решил сделать бэкап системы (тем же самым скриптом, как и всегда).

На этот раз rsync перестает печатать строки после var/log/faillog, потом свободное место на внешнем диске, сколько бы его ни было, заканчивается.

Возникла мысль, что где-то, вероятно, образуются циклические ссылки, что я и проверил командой

find / -follow -printf ""
В результате выводится огромное число сообщений типа
find: Обнаружено зацикливание в файловой системе; ‘/sys/devices/pci0000:00/0000:00:1c.3/subsystem/devices/0000:00:1e.0/pci_bus/0000:11/subsystem/0000:09/device/driver/0000:00:1c.1/firmware_node/subsystem/devices/PNP0800:00/physical_node/subsystem/devices/PNP0C0E:00/firmware_node/driver/LNXPWRBN:00/input/input9/subsystem/event13/device/device/subsystem/devices/usb5/driver/4-1.1.4/4-1.1.4:1.0/host4/subsystem/devices/host1/scsi_host/host1/subsystem/host0/device/target0:0:0/0:0:0:0/block/sda/sda3/subsystem/sdb/subsystem’ является частью той же петли файловой системы что и ‘/sys/devices/pci0000:00/0000:00:1c.3/subsystem/devices/0000:00:1e.0/pci_bus/0000:11/subsystem/0000:09/device/driver/0000:00:1c.1/firmware_node/subsystem/devices/PNP0800:00/physical_node/subsystem/devices/PNP0C0E:00/firmware_node/driver/LNXPWRBN:00/input/input9/subsystem/event13/device/device/subsystem/devices/usb5/driver/4-1.1.4/4-1.1.4:1.0/host4/subsystem/devices/host1/scsi_host/host1/subsystem/host0/device/target0:0:0/0:0:0:0/block/sda/sda3/subsystem’

Удалил старый бэкап полностью и переписал команду (/dev/sda1 смонтирован на /mnt) как

rsync -av --exclude /mnt/mnt --exclude /tmp --exclude /sys/devices --delete /mnt/* /media/OLD/backup/devuan/
но это не помогло.

Как исправить ситуацию?

 , , ,

denton ()

Новогодний «подарок» от Ростелеком

Форум — Talks

За декабрь пришла квитанция в 685 руб вместо 600 (СПб). Само по себе недешево, так еще навязывают антивирус! Позвонил в поддержку, выяснилось, что так они делают для ВСЕХ абонентов в рамках «рекламной акции». Уведомление приходит по СМС (но лично я все СМС с незнакомых номеров блокирую). Типа месяц «услуга» бесплатна, потом начинают стричь. Единственный плюс - можно отключить автоподключение всех платных услуг в дальнейшем и сделать перерасчет. В общем, в лучших традициях Мегафона.

 ,

denton ()

Виснут иксы

Форум — Desktop

Привет всем!

Система Linux devuan 4.9.0-8-686-pae #1 SMP Debian 4.9.130-2 (2018-10-27) i686 GNU/Linux. Видео - встроенная карточка intel на нетбуке Samsung N100.

Основная проблема у меня с этим дистрибутивом в том, что виснут иксы. По всей видимости, как-то связано с мультимедиа - раньше висло при проигрывании видео, а сегодня - музыки с внешнего HDD. Зависания рандомные, иногда - раз в неделю, а иногда - три раза на день. При зависании картинка остается статичной, курсор раньше, по-моему, вис, а сегодня исчез (Работаю с внешним монитором. Когда беру нетбук с собой, иногда пропадает курсор - может, это как-нибудь связано). На Ctrl-Alt-F1..7 не реагирует, но, что интересно, после зависания картинки звук продолжает работать! Вот только то, что программы, по-видимости, работают в фоне, не помогает, потому что спасает только жесткий рестарт. Вот лог Xorg, но не уверен, что он актуален, потому что ls -l показывает на нем ровно то время, когда пришлось сделать рестарт.

Как дебажить, куда копать?

 ,

denton ()

Сборка AppImage для программ на Python3

Форум — Development

Привет всем!

Мне уже удавалось собирать код на Python3 с помощью cx-freeze или pyinstaller, но мне хотелось бы собрать AppImage для всех линуксовых дистрибутивов. Оставить в исходном коде - не совсем вариант. Запуск питона со всеми pip-зависимостями и (иногда) исправленными багами в site-packages для новичка нелегок будет. Заморачиваться с пакетированием под все основные системы не очень хочется, решил остановиться на AppImage.

Как я это делаю сейчас:

1) запускаю cx_freeze/pyinstaller, получаю каталог с бинарниками.

2) Создаю usr/bin, перемещаю бинарники в него

3) Копирую в текущий каталог AppRun (ELF), MyApp.desktop, MyApp.png.

4) Делаю

strace -eopen -f ./AppRun 2>&1 | grep / | grep -v ENOENT | cut -d "\"" -f 2 | sort | uniq > copyfiles
Это находит все используемые в системе файлы.

5) Удаляю из copyfiles то, что, скорее всего, копировать не нужно (/etc/passwd, /dev/null и т.д.).

6) Копирую в каталог с AppRun файлы из copyfiles, принимая текущий каталог за /. Т.е., /lib/somelib.so -> ./lib/somelib.so, /etc/fonts/somefont -> ./etc/fonts/somefont и т.д.

7) Для каталога с AppRun применяю appimagetool, он собирает AppImage.

Проблема в том, что такая сборка использует как локальные, так и системные файлы. Например, после запуска на другой ОС я получаю segmentation fault, но после удаления из ./lib libgc, libpthread и lipdl, программа запускается. Т.е., какие-то библиотеки из ./lib используются. Однако, не используются шрифты из ./etc/fonts - я получаю сообщения об ошибках (обращение, по всей видимости, по-прежнему идет к /etc/fonts), на некотых ОС я получаю квадраты.

Также проблема с сертификатами, получаю ошибку SSL: CERTIFICATE_VERIFY_FAILED. Иногда помогает установка ca_certificates, но на разных ОС сертификаты находятся в РАЗНЫХ каталогах! ЕМНИП, для centos - /etc/pki/tls, для debian - /etc/ssl/certs, для TinyCore - /usr/local/etc/ssl/certs. После создания /etc/pki/tls/cert.pem программа, собранная на centos, завелась на debian. Однако, ни сборка на centos, ни сборка на debian8 не завелась полностью на TinyCore - CERTIFICATE_VERIFY_FAILED и квадраты вместо кириллицы.

В общем, вопрос: как грамотно сделать сборку? Может, требуется пропатчить libpython в сборке (если там есть жесткая привязка к системным файлам)?

P.S. Я знаю про существование yml и TravisCI, но я пока не понял, что оно делает, какого рода скрипты можно вставить в yml и что вообще получается на выходе. Хочется пока руками, чтобы разобраться.

 ,

denton ()

Зависание системы

Форум — General

Привет всем! Сегодня прямо во время работы на ноутбуке получил панику ядра (мигал capslock). Консольного вывода не было, на экране просто остался GUI текущих приложений как он был. После перезагрузки сразу сделал dmesg, но я его плохо понимаю, к тому же, время там не указано. Система Centos 6, ядро 2.6.32-754.3.5.el6.i686. Поможете определить, в какой момент возникла паника и из-за чего? Вывод dmesg.

 ,

denton ()

Ethernet-адатер для подключения к смартфону?

Форум — Linux-hardware

На андроид-смартфоне нужен интернет для видеозвонков. Есть мобильный интернет, но хотелось бы что-нибудь потолще. Не хочется покупать WiFi-роутер при наличии только 1 комнаты. Что тут можно сделать? Я в плане оборудования особо не шарю, поэтому извините, если пытаюсь скрестить ужа и ежа. На данный момент алгоритм действий представляю себе следующим образом:

1) Есть проводной интернет (DOCSIS), который раздает модем Arris (установил Ростелеком). На этом модеме только 1 вход для RJ45. Поэтому сначала понадобится купить сплиттер для такого разъема (такие вообще бывают?).

2) Потом купить Ethernet-адаптер по типу такого. Некоторые из таких устройств требуют наличия драйверов, не знаю, зачем.

3) Взять переходник USB -> мини-USB и соединить со смартфоном.

Не знаю, сработает ли это, возможно, это бред. Ваш вариант действий?

 

denton ()

Вкладки как в elinks

Форум — Development

Добрый вечер!

Мне очень нравится elinks, хочу сделать простой консольный браузер на Python3, только заточенный под себя. Не понимаю, как реализовать в консоли вкладки (tabs). Выглядят они так: https://i.imgur.com/5TcuGCF.jpg

Установил модуль clint, но из интересного для меня нашел там разве что отступы и цвета.

Может быть, подскажете, как это делается? Интересует, прежде всего, линуксовая консоль, но кроссплатформенные решения приветствуются!

 ,

denton ()

Новым руководителем проекта Linux станет Леннарт Поттеринг

Форум — Talks

Линус Торвальдс, бессменный руководитель проекта Linux и его ведущий разработчик на протяжении 27 лет, объявил о своем уходе из компании RedHat и прекращении деятельности по разработке ядра. «Я устал, пора передавать пальму первенства новому, прогрессивному поколению», сказал он.

Эстафетная палочка переходит другому известному сотруднику RedHat - Леннарту Поттерингу. Леннарт уже заявил об интеграции своих разработок, в частности, systemd, в ядро.

Бизнес-пользователи с воодушевлением восприняли должностные перестановки в RedHat. Лидеры крупнейших IT-компаний заявили о том, что ожидают унификацию и дефрагментацию платформы Linux в связи с грядущими изменениями. Директор Microsoft Russia и руководитель облачной платформы Azure рассказали о том, что компании Microsoft будет проще интегрировать свои решения в обновленную платформу Linux.

Инициативная группа разработчиков-альтруистов, не зависящая от компании RedHat, заявила о создании Librux, форка ядра Linux, поскольку не согласна с изменениями, предлагаемыми Леннартом Поттерингом.

Руководитель пресс-службы RedHat пока никак не прокомментировал вопрос журналистов о том, кому перейдут права на торговую марку Linux(TM) после ухода Торвальдса со своей должности.

P.S. Да, я знаю, что не смешно, КГ/АМ, но это, IMHO, вполне вероятное развитие событий. :(

 , , ,

denton ()

Выпуск Yatube 1.0 - клиента Youtube

Новости — Мультимедиа
Группа Мультимедиа

Состоялся первый выпуск Yatube (Yet Another Youtube client).

Программа ориентирована, прежде всего, на владельцев слабых компьютеров, которые испытывают дискомфорт при просмотре видео с Youtube через браузер, а также владельцев старых телевизоров без поддержки WiFi и Youtube. Все загружаемые видео имеют путь Yatube/user/Youtube/<название_канала>/<название_ролика>, что позволяет перенести весь каталог Youtube на внешний жесткий диск и смотреть ролики с телевизора, подключенного к медиаплееру.

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

( читать дальше... )

>>> Проект на GitHub

 

denton ()

Обновление ядер и безопасность

Форум — Security

Я использую CentOS 6 с ядром 2.6.32-696.3.2.el6.i686. Подскажите, пожалуйста, вносит ли команда

yum update --security
последние патчи безопасности в ядро, или же в данном дистрибутиве пропатчено только самое свежее ядро из реп.

 

denton ()

Я упоролся?

Форум — Development

Как вам такой стиль оформления кода: https://pastebin.com/55vJAtdp

Да, это противоречит PEP, да еще и Mono-шрифт нужен, иначе разъезжается, но мне нравится :)

А вы что думаете?

 

denton ()

elinks еще жив?

Форум — Desktop

Кто-нибудь знает, как обстоят дела с elinks? Последний стабильный релиз, насколько могу судить, состоялся 5 лет назад. На многие сайты перестал заходить - какая-то проблема с SSH. Даже при попытке зайти на википедию получаю «сеть недоступна».

Смотрел форки на github, вроде бы и есть какое-то движение, но все валятся с ошибкой

document.c:303: ошибка: слишком много аргументов в вызове функции ‘document_write_do’

Что мне хочется от текстового браузера:

1) (обязательно) должен быть быстрым (впрочем, сам elinks зачастую по несколько секунд страницу получает)

2) (обязательно) должен поддерживать вкладки

3) (желательно) настройка цвета

4) (опционально) поддержка графики, скриптов и пр. навороты

 

denton ()

Когда базы данных нужны, а когда нет?

Форум — Development

Пытаюсь разобраться, в каких случаях БД нужны в десктопных приложениях, а в каких нет. Поможете подобрать use cases?

Конкретно интересует следующее (но не только). Нужно как-нибудь организовать данные в оболочке для словарей. А именно, организовать информацию о словарных статьях (источник, URL, заголовок, код в HTML, plain text и пр.) и об элементах статьи (тип, plain text, позиция и пр.). Хранить можно все в памяти (на данный момент). Элементы статьи должны быть привязаны к конкретной статье.

На данный момент все написано на Python 3, информация о статьях хранится в sqlite3, а элементы статьи реализованы классами. Хочется унифицировать.

Что нравится в БД - это мощь select, делается быстро и не нужно писать дополнительный код, понятная организация данных и контроль БД. Что не нравится - нужно вычислять все за раз и обновлять в транзакциях, иначе будут просадки по скорости.

 ,

denton ()

Фильтрация по тэгам не работает?

Форум — Linux-org-ru

Я занес тэг «игры» в «Список игнорирования тегов» (правильнее было бы «Список игнорируемых тегов»), но все равно регулярно вижу игры на главной (их просто засилье). Чистил кэш, перезагружал страницу, перелогинивался. Не работает.

 ,

denton ()

Свернуть элементы в боковой панели

Форум — Development

Добрый день. Не могу разобраться, как можно настроить Geany (1.24.1) так, чтобы при загрузке файла в боковой панели слева список классов не разворачивался вплоть до списка функций, мне нужно иметь только список классов. Сейчас оно выглядит так, а мне нужно так. Искал в google, yahoo и bing, но запрос «geany side panel folding» выдает мусор.

 

denton ()

update в цикле

Форум — Development

Привет всем. В базах данных я новичок, поэтому всех подводных камней не знаю.

Нужно создавать таблицы примерно в 28 столбцов и 1500 строк или больше. БД нужна для хранения промежуточных вычислений анализа текста. Например, номер слова, само слово, слово в нижнем регистре, слово без пунктуации, формы склонения и т.д. При этом изначально база пустая, и ее надо пополнять не сразу, а в процессе обращения к требуемым элементам (не все элементы требуются, к тому же, экономятся ресурсы). Стало быть, для каждого элемента мне требуется выполнять update.

Почему операция update так долго выполняется, даже если БД создана в памяти? Почитал руководства, многократные update рекомендуется заворачивать в транзакции. У меня тестовая БД 7x1000 генерируется ~2.5 с. Это долго? Как оптимизировать? Пытался завернуть в транзакцию, прироста в производительности не наблюдаю. Пример кода ниже.

#!/usr/bin/python3

import sqlite3
from time import time

class SQLExample:
	
	def __init__(self):
		self._lst = []
	
	def lst(self):
		print('Building list...')
		if not self._lst:
			for i in range(1000):
				self._lst.append(i)
		return self._lst
	
	def create(self):
		self.db_con = sqlite3.connect(':memory:')
		self.db = self.db_con.cursor()
		self.db.execute('PRAGMA synchronous=OFF')
		self.db_con.isolation_level = 'DEFERRED'
		#self.db.execute('PRAGMA journal_mode=OFF')
		self.db.execute('create table WORDS (NO integer,P text,NP text,F_SYM_P integer,L_SYM_P integer,F_SYM_NP integer,L_SYM_NP integer)') # todo: commas before ')'?
		self.db_con.commit()
		
	def fill(self):
		for i in range(len(self.lst())):
			self.db.execute('insert into WORDS values (?,?,?,?,?,?,?)',(i,-1,-1,-1,-1,-1,-1,))
		self.db_con.commit()
		
	def close(self):
		self.db.close()
		
	def update(self):
		print('Updating DB...')
		start_time = time()
		for i in range(len(self.lst())):
			#print('Updating row #',i)
			self.db.execute('update WORDS set P=? where NO=?',(str(self._lst[i]),i,))
			self.db.execute('update WORDS set NP=? where NO=?',(str(self._lst[i]),i,))
			self.db.execute('update WORDS set F_SYM_NP=? where NO=?',(self._lst[i],i,))
			self.db.execute('update WORDS set L_SYM_NP=? where NO=?',(self._lst[i],i,))
			#self.db.executescript('begin; update WORDS set P=%s where NO=%d;update WORDS set NP=%s where NO=%d;update WORDS set F_SYM_NP=%s where NO=%d;update WORDS set L_SYM_NP=%s where NO=%s;commit;' % (str(self._lst[i]),i,str(self._lst[i]),i,str(self._lst[i]),i,str(self._lst[i]),i))
		self.db_con.commit()
		print('Finished in %s.' % str(time()-start_time))
		
	def run(self):
		print('Creating table...')
		self.create()
		print('Filling table...')
		self.fill()
		print('Updating table...')
		self.update()
		self.close()

SQLExample().run()

 ,

denton ()

Убрать меню «Недавние документы»

Форум — Desktop

Привет всем. При использовании Geany или Gedit, когда нажимаю Ctrl-O, появляется вот такой диалог. По умолчанию выбран пункт «Недавние документы», который мне не нужен. Мне надо, чтобы по умолчанию выбирался последний использованный каталог или $HOME. Как это сделать? У меня Gnome/KDE только кусками, DE - Openbox.

 

denton ()

Обновления безопасности

Форум — Security

Рабочая тачка, не сервер. Много раз обжегся на обновлениях, которые все ломали, в итоге перешел на CentOS, где они гибко настраиваются. С помощью yum-security устанавливаю только обновления безопасности. Прошу прощения, если вопрос нубский, но можно ли ограничиться такими обновлениями, или стоит устанавливать новое доступное ядро? Поддерживаются ли старые ядра? Что делать с SELinux (слышал, что ненастроенный файрвол хуже отсутствующего вообще)?

 ,

denton ()

Парсеры для словарей

Форум — Development

Добрый день!

Посоветуйте, пожалуйста, программы и/или руководства, с помощью которых можно парсить и/или конвертировать словари в форматах GoldenDict / Stardict / Multitran / Lingvo и пр. (а также парсеры для онлайн-словарей).

Особенно интересуют парсеры для Python. Также очень хочется найти multitran-tool, но Google Code, на котором он хостился, умер, и зеркало найти не могу.

 , , , ,

denton ()

Serious Engine выпущен под лицензией GPL v2

Новости — Игры
Группа Игры

Хорватская компания Croteam выложила исходный код движка Serious Engine v1.10, использованный в разработке таких игр как Serious Sam Classic: The First Encounter и Serious Sam Classic: The Second Encounter под лицензией GPL v2. Код доступен на GitHub.

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

>>> Подробности

 , ,

denton ()

RSS подписка на новые темы