LINUX.ORG.RU

Сообщения Xintrea

 

Что-то мой сайт недоступен. Что за?

Пинги на webhamster.ru не проходят.

Трейсроут ничем не заканчивается:

>traceroute webhamster.ru
traceroute to webhamster.ru (193.124.188.214), 30 hops max, 60 byte packets
 1  router.lan (192.168.88.1)  0.364 ms  0.397 ms  0.454 ms
 2  10.189.208.1 (10.189.208.1)  2.514 ms  2.923 ms  2.579 ms
 3  5.18.4.250 (5.18.4.250)  3.755 ms  2.804 ms  2.866 ms
 4  188x234x76x196.dynamic.omsk.ertelecom.ru (188.234.76.196)  11.142 ms  11.124 ms  11.198 ms
 5  188x234x76x197.dynamic.omsk.ertelecom.ru (188.234.76.197)  12.809 ms  12.103 ms  12.083 ms
 6  highspeed-peer.highspeednetwork.ru (92.63.203.97)  12.305 ms str147-peer.highspeednetwork.ru (92.63.203.107)  22.349 ms str147-5-peer.highspeednetwork.ru (92.63.203.59)  22.311 ms
 7  * * *
 8  * * *
 9  * * *

В чем может быть проблема? Недавно переносил домен с r01 на beget.com, может из-за этого? Кто виноват, что крутить?

 , ,

Xintrea
()

ARM ассемблер - не пойму, заинлайнилась ли функция?

Пишу под STM32 (BluePill).

Есть вот такая функция:

__attribute__((always_inline, section(".ramfunc")))
uint16_t readAddressBus()
{
    // Для ускорения адрес вначале считается 32-х битным чтобы проще работать
    // с 32-х битным регистром PA, и только в конце он один раз преобразуется в 16 бит
    uint32_t addr = 0;

    // Установка на мультиплексоре сегмента адреса 00
    GPIOB->BSRR = 0 | (GPIO_BSRR_BR3_Msk | GPIO_BSRR_BR4_Msk );

    // Считывается и запоминается значение ножек сегмента 0
    addr = ((GPIOA->IDR & 0x0F00) >> 8);


    // Установка на мультиплексоре сегмента адреса 01
    GPIOB->BSRR = 0 | (GPIO_BSRR_BS3_Msk | GPIO_BSRR_BR4_Msk );

    // Считывается и запоминается значение ножек сегмента 1
    addr = addr | ((GPIOA->IDR & 0x0F00) >> 4);


    // Установка на мультиплексоре сегмента адреса 10
    GPIOB->BSRR = 0 | (GPIO_BSRR_BR3_Msk | GPIO_BSRR_BS4_Msk );

    // Считывается и запоминается значение ножек сегмента 2
    addr = addr | (GPIOA->IDR & 0x0F00);


    // Установка на мультиплексоре сегмента адреса 11
    GPIOB->BSRR = 0 | (GPIO_BSRR_BS3_Msk | GPIO_BSRR_BS4_Msk );

    // Считывается и запоминается значение ножек сегмента 3
    addr = addr | ((GPIOA->IDR & 0x0F00) << 4);

    return (uint16_t) addr;
}

Она вызывается из main loop:
__attribute__((noinline, section(".ramfunc")))
void mainLoop()
{
    ...
            // Нужно получить текущий адрес с ША
            uint16_t addr=readAddressBus();
    ...
}

В дизассемблере ARM это дело представлено таким образом:
Disassembly of section .ramfunc:

080004d0 <readAddressBus>:
 80004d0:	f44f 13c0 	mov.w	r3, #1572864	; 0x180000
 80004d4:	490d      	ldr	r1, [pc, #52]	; (800050c <readAddressBus+0x3c>)
 80004d6:	4a0e      	ldr	r2, [pc, #56]	; (8000510 <readAddressBus+0x40>)
 80004d8:	480e      	ldr	r0, [pc, #56]	; (8000514 <readAddressBus+0x44>)
 80004da:	610b      	str	r3, [r1, #16]
 80004dc:	6893      	ldr	r3, [r2, #8]
 80004de:	6108      	str	r0, [r1, #16]
 80004e0:	6890      	ldr	r0, [r2, #8]
 80004e2:	f3c3 2303 	ubfx	r3, r3, #8, #4
 80004e6:	0900      	lsrs	r0, r0, #4
 80004e8:	f000 00f0 	and.w	r0, r0, #240	; 0xf0
 80004ec:	4318      	orrs	r0, r3
 80004ee:	4b0a      	ldr	r3, [pc, #40]	; (8000518 <readAddressBus+0x48>)
 80004f0:	610b      	str	r3, [r1, #16]
 80004f2:	6893      	ldr	r3, [r2, #8]
 80004f4:	f403 6370 	and.w	r3, r3, #3840	; 0xf00
 80004f8:	4318      	orrs	r0, r3
 80004fa:	2318      	movs	r3, #24
 80004fc:	610b      	str	r3, [r1, #16]
 80004fe:	6893      	ldr	r3, [r2, #8]
 8000500:	011b      	lsls	r3, r3, #4
 8000502:	f403 4370 	and.w	r3, r3, #61440	; 0xf000
 8000506:	4318      	orrs	r0, r3
 8000508:	4770      	bx	lr
 800050a:	bf00      	nop
 800050c:	40010c00 	andmi	r0, r1, r0, lsl #24
 8000510:	40010800 	andmi	r0, r1, r0, lsl #16
 8000514:	00100008 	andseq	r0, r0, r8
 8000518:	00080010 	andeq	r0, r8, r0, lsl r0

0800051c <mainLoop>:
 800051c:	e92d 47f0 	stmdb	sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
 8000520:	2100      	movs	r1, #0
 8000522:	f44f 15c0 	mov.w	r5, #1572864	; 0x180000
 8000526:	f04f 0c18 	mov.w	ip, #24
 800052a:	f44f 3480 	mov.w	r4, #65536	; 0x10000
 800052e:	f04f 0e01 	mov.w	lr, #1
 8000532:	4a20      	ldr	r2, [pc, #128]	; (80005b4 <mainLoop+0x98>)
 8000534:	4820      	ldr	r0, [pc, #128]	; (80005b8 <mainLoop+0x9c>)
 8000536:	4e21      	ldr	r6, [pc, #132]	; (80005bc <mainLoop+0xa0>)
 8000538:	4f21      	ldr	r7, [pc, #132]	; (80005c0 <mainLoop+0xa4>)
 800053a:	f8df 8088 	ldr.w	r8, [pc, #136]	; 80005c4 <mainLoop+0xa8>
 800053e:	6893      	ldr	r3, [r2, #8]
 8000540:	f013 0fc0 	tst.w	r3, #192	; 0xc0
 8000544:	d005      	beq.n	8000552 <mainLoop+0x36>
 8000546:	2900      	cmp	r1, #0
 8000548:	d0f9      	beq.n	800053e <mainLoop+0x22>
 800054a:	f8c2 e010 	str.w	lr, [r2, #16]
 800054e:	2100      	movs	r1, #0
 8000550:	e7f5      	b.n	800053e <mainLoop+0x22>
 8000552:	6115      	str	r5, [r2, #16]
 8000554:	6883      	ldr	r3, [r0, #8]
 8000556:	6116      	str	r6, [r2, #16]
 8000558:	f3c3 2a03 	ubfx	sl, r3, #8, #4
 800055c:	6883      	ldr	r3, [r0, #8]
 800055e:	6117      	str	r7, [r2, #16]
 8000560:	ea4f 1913 	mov.w	r9, r3, lsr #4
 8000564:	6883      	ldr	r3, [r0, #8]
 8000566:	f009 09f0 	and.w	r9, r9, #240	; 0xf0
 800056a:	f8c2 c010 	str.w	ip, [r2, #16]
 800056e:	f403 6370 	and.w	r3, r3, #3840	; 0xf00
 8000572:	ea49 090a 	orr.w	r9, r9, sl
 8000576:	ea43 0909 	orr.w	r9, r3, r9
 800057a:	6883      	ldr	r3, [r0, #8]
 800057c:	011b      	lsls	r3, r3, #4
 800057e:	f403 4370 	and.w	r3, r3, #61440	; 0xf000
 8000582:	ea43 0309 	orr.w	r3, r3, r9
 8000586:	f483 4900 	eor.w	r9, r3, #32768	; 0x8000
 800058a:	f1b9 0f04 	cmp.w	r9, #4
 800058e:	bf8f      	iteee	hi
 8000590:	f04f 0988 	movhi.w	r9, #136	; 0x88
 8000594:	4443      	addls	r3, r8
 8000596:	f5a3 4300 	subls.w	r3, r3, #32768	; 0x8000
 800059a:	f893 9000 	ldrbls.w	r9, [r3]
 800059e:	6893      	ldr	r3, [r2, #8]
 80005a0:	b29b      	uxth	r3, r3
 80005a2:	ea43 2309 	orr.w	r3, r3, r9, lsl #8
 80005a6:	60d3      	str	r3, [r2, #12]
 80005a8:	2900      	cmp	r1, #0
 80005aa:	d1c8      	bne.n	800053e <mainLoop+0x22>
 80005ac:	6114      	str	r4, [r2, #16]
 80005ae:	2101      	movs	r1, #1
 80005b0:	e7c5      	b.n	800053e <mainLoop+0x22>
 80005b2:	bf00      	nop
 80005b4:	40010c00 	andmi	r0, r1, r0, lsl #24
 80005b8:	40010800 	andmi	r0, r1, r0, lsl #16
 80005bc:	00100008 	andseq	r0, r0, r8
 80005c0:	00080010 	andeq	r0, r8, r0, lsl r0
 80005c4:	20000000 	andcs	r0, r0, r0

И я вижу, что код функции readAddressBus() оттранслировался в отдельные адреса. Но я нигде не вижу вызова этой функции. При этом я вижу искаженный код данной функции внутри mainLoop(), значит readAddressBus() вроде как заинлайнилась.

Но тогда зачем сделана реализация этой функции в отдельных адресах, если эта реализация вообще не используется?

Исходник на Си: https://github.com/xintrea/mikroshamem/blob/c00c10606dca71d3531c45f70b1169732...
Ассемблер: https://pastebin.com/gpc4tA03

 , , ,

Xintrea
()

Как сделать мигающую иконку в Telegram?

Не могу нормально пользоваться Telegram из-за того, что все время про него забываю. Люди мне пишут, а я даже этого не вижу. Ну висит иконка и висит в трее с 100500 непрочитанными сообщениями. Зайду туда раз в неделю, посмотрю что там, может кому-то отвечу. Люди обижаются, что сразу не отвечаю. А я не вижу что мне кто-то что-то написал.

Хотелось бы как в ICQ/Miranda, если пришло личное сообщение - на иконке мигает конвертик. Если ответили в конференции - еще один конвертик другого цвета. Если и там и там - два конвертика.

DE использую LXDE.

Можно ли как-то это дело организовать на Telegram Desktop? Посмотрел на исходники - там сборка через docker, а изучать еще одну сущность - это выше моих способностей. Может, есть что-то готовое?

 , , , ,

Xintrea
()

QML - последовательность вызовов onAccepted(), onRejected(), onClose().

Сделал окошечко на базе Dialog, сделал две кнопки [OK] и [Cancel] плюс в уголку кнопка закрытия [X].

[OK] - вызывает accept()
[Cancel] - вызывает reject()
[X] - вызывает close()

И, естественно, прописал диалогу обработчики:

onAccepted() { ... Действие 1 ... }
onRejected() { ... Действие 2 ... }
onClose() { ... Действие 3 ... }

Проблема в том, что если нажать OK или Cancel, то вначале QML сгенерирует вызов onClose(), и только потом onAccepted() или onRejected().

Получается, что хочу я того или не хочу, при нажатии OK будет выполнено:

Действие 3
Действие 1

А при нажатии Cancel будет выполнено:

Действие 3
Действие 2

Но в моей программе важна последовательность действий. И мне нужно, в идеале, как-то сделать, чтобы при нажатии OK или Cancel срабатывал только тот код, который написан в их обработчике.

Если это невозможно, то хотя бы сделать так, чтобы для ОК выполнялось:

Действие 1
Действие 3

А для Cancel выполнялось:

Действие 1
Действие 2

Как этого добиться?

Другими словами: в onClose() надо каким-то образом узнать, это «чистое» закрытие окна, или закрытие через кнопку OK/Close. И дело усложняется тем, что onClose() вызывается ПЕРЕД onAccepted()/onRejected(), то есть невозможно выставить, например, переменную-флаг, на которую можно было бы ориентироваться.

 , , , ,

Xintrea
()

Передача ассоциативного массива из QML в C++. Преобразование QJSValue в QVariantMap

Имеется Qt 5.11.

Вызываю функцию из QML через JavaScript. В качестве параметра передается ассоциативный массив (индексы - строки и значения - строки).

var a;
a["one"]=odin;
a["two']=dva;

ourExemplar.ourMethod(a);

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

https://doc.qt.io/qt-5/qtqml-cppintegration-data.html

Однако все, что я могу вытащить из QJSValue - это QVariantList (это алиас QList<QVariant>). Да и то этот список будет нуливого размера.

Вот код:
void OurClass::ourMethod(QJSValue jsVal)
{
    qDebug() << Q_FUNC_INFO << "Слот ourMethod()";

    qDebug() << "Результат isObject(): "  << jsVal.isObject();
    qDebug() << "Результат isQObject(): " << jsVal.isQObject();
    qDebug() << "Результат isArray(): "   << jsVal.isArray();
    qDebug() << "Результат isVariant(): " << jsVal.isVariant();

    qDebug() << "QJSValue содержит тип " << jsVal.toVariant().userType();
    qDebug() << "Тип QVariant "     << qMetaTypeId<QVariant>();
    qDebug() << "Тип QVariantList " << qMetaTypeId<QVariantList>();
    qDebug() << "Тип QVariantMap "  << qMetaTypeId<QVariantMap>();
    qDebug() << "Тип QJSValue: "    << qMetaTypeId<QJSValue>();

    QVariantList list=jsVal.toVariant().toList();
    qDebug() << "Длинна list: " << list.size();

Вот результат:
void OurClass::ourMethod(QJSValue) Слот ourMethod()
Результат isObject():  true
Результат isQObject():  false
Результат isArray():  true
Результат isVariant():  false
QJSValue содержит тип  9
Тип QVariant  41
Тип QVariantList  9
Тип QVariantMap  8
Тип QJSValue:  1056
Длинна list:  0

Здесь видно, что isObject() и isArray() одновременно выдают true. Не знаю, должно ли так быть.

Узнать какой тип содержится в QVariant элемента списка я не могу придумать как, так как нет даже первого элемента, ведь список пустой.

В общем, задача - передать ассоциативный массив из QML в C++, но я не могу разобраться как это сделать. Везде пишется как конвертить из C++ в QML, а мне надо наоборот. У буржуев нашел вот такое:

https://lists.qt-project.org/pipermail/development/2014-September/018513.html

Но тут тоже направление из C++ в QML. Как будто из QML в C++ никто ничего структурированного не передает.

 , , , ,

Xintrea
()

Четыре ошибки «Нет маршрута до узла» а потом «соединение установлено» - что это?

Что-то мой VPS-хостер крутил в своей сети, зачем-то вчера перегрузил мою VPS-ку, и стал мой сайт работать медленно.

Nginx показывает ошибку 504 Gateway Time-out.

В логах ошибки вида:

[error] 440#440: *103214 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 193.124.188.214, server: webhamster.ru, request: "GET /mytetrashare/index/mtb0/1510587037z3ybjqq0cv HTTP/1.0", upstream: "fastcgi://unix:/var/run/php5-fpm.sock", host: "webhamster.ru"
Проц не нагружен, памяти половина не используется, I/O небольшой, все в порядке, не знал на что грешить.

И походу нашел проблему. Фишка в том, что мои скрипты активно берут информацию с raw.githubusercontent.com. И я решил со своего сервера взять какой-нибудь файл:

И мне в ответ:
> wget https://raw.githubusercontent.com/xintrea/mytetra_syncro/master/base/0000003425/text.html             
--2022-09-08 13:53:07--  https://raw.githubusercontent.com/xintrea/mytetra_syncro/master/base/0000003425/text.html                                                                                                    
Распознаётся raw.githubusercontent.com (raw.githubusercontent.com)… 2606:50c0:8000::154, 2606:50c0:8001::154, 2606:50c0:8002::154, ...                                                                                
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8000::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8001::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8002::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... ошибка: Нет маршрута до узла.                                                                                         
Подключение к raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... соединение установлено.                                                                                                   
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 8105 (7,9K) [text/plain]
Сохранение в: «text.html»                                                                                  
text.html 100%[=======================================>]   7,92K  --.-KB/s in 0,001s
2022-09-08 13:53:19 (12,0 MB/s) - «text.html» сохранён [8105/8105]

Похоже из-за этого подвисают веркеры php5-fpm, и весь сайт начинает тормозить.

Вопрос: что теперь надо крутить, чтобы соединение с raw.githubusercontent.com устанавливалось нормально? Раньше такой проблемы не было. Смогу ли я решить проблему, конфигурируя свой сервер, или без пинания хостера не обойтись? Тогда что требовать от хостера? Проблема на моей стороне? У кого-то DNS кривой? Что-то еще?

 , , , ,

Xintrea
()

Как в SED обработать только заданную строку?

Файл состоит из строк вида:

имя_опции=значение опции
или
имя_опции="значение опции"

Необходимо в значении опции, например с именем OUR_NAME, удалить повторяющиеся пробелы.

Как удалить повторяющиеся пробелы во всем файле понятно, например так:
sed -i -E 's/ */ /g' имя_файла

А как удалить повторяющиеся пробелы только в нужном месте?

 ,

Xintrea
()

Викторина по истории компьютерного железа с фестиваля Undefined 2022. А вы смогли бы? (+бонус)

Привет!

В видеотрансляции с фестиваля Undefined 2022 можно посмотреть викторину на знание истории компьютерного железа:

Викторина по истории компьютерного железа

Вопрос к аудитории ЛОРа: являются ли такие вопросы слишком легкими / слишком сложными? На сколько вопросов вы смогли ответить (всего 12 вопросов).

Какие вопросы вы сами могли бы предложить?


Бонус: для любителей и знатоков демосцены еще одна викторина:

Викторина по демомейкингу и демосцене

Что о ней думаете? Сложно? Столько вопросов из одолели?

Отвечать надо сразу, не гуглить.


UPD: Эти же викторины в текстовом формате:

https://pastebin.com/MCKYVRHi
https://pastebin.com/A7mvVnTe

 , ,

Xintrea
()

Напоминаю: конференция Undefined 2022 - уже на этих выходных

В ближайшую субботу, 20.08.2022, в поселке Рощино близ Петербурга, в комфортабельном конференц-зале состоится фестиваль компьютерного искусства Undefined 2022.

Сайт фестиваля: https://undefined.c-c.ru

Кто еще не определился, чем будет заниматься на выходных, рекомендую взять и приехать. Если вы конечно недалеко от Питера :) а Сапсан для вас - как проехаться на метро.

Задумано много всяких разных конкурсов и активностей. Команда фестиваля делает все в первый раз, будет много неразберихи, факапов и драмы, в общем, все как вы тут на ЛОРе любите.

Для ценителей так же работает hidden-конференция под названием Бухаос.

 demoparty,

Xintrea
()

Конвертация из SVG в PDF в консоли через Inkscape упакованный в AppImage

Имеется Inkscape 1.2.1, который запускается из AppImage.

Графический запуск происходит без проблем. Но мне нужен запуск bash-команды, которая использует этот InkScape для преобразования одностраничного SVG в одностраничный PDF.

Вот пример команды (образец взят отсюда: https://graphicdesign.stackexchange.com/questions/5880/how-to-export-an-inksc...)

/opt/inkscape_1_2_1/Inkscape-9c6d41e-x86_64_1_2_1.AppImage /home/xi/work/develop/php/undefinedVictorin2022/src/../svg/victorine01/page00.svg --export-area-drawing --batch-process --export-type=pdf --export-filename=/home/xi/work/develop/php/undefinedVictorin2022/src/../pdf/victorine01/page00.pdf

Однако, эта команда, вместо того чтобы сконвертировать SVG в PDF, открывает SVG-файл в графическом интерфейсе и ничего не делает. В консоли никаких ошибок нет.

Вопрос: как сконвертировать SVG в PDF через InkScape из AppImage?

PS: Использовать для конвертирования утилиту rsvg-convert невозможно, она криво конвертит SVG, и как минимум не знает о переносе строк и различных режимах выравнивания текста по горизонтали.

 , , , ,

Xintrea
()

Что за странная синяя палочка в Konsole возле области прокрутки?

Имеется Konsole 20.12.3 в Debian Stable 11.

В ней появляется вот такая палочка:

https://dropmefiles.com/hLmMV

Ее высота и положение как-то зависит от колеса мышки.

Как ее убрать?

 konsile, ,

Xintrea
()

Где и как найти официальную документацию на утилиту (встроенную команду) [[ ?

Не могу разобраться, каким образом и где заполучить документацию на утилиту (встроенную команду) [[.

На утилиту [ документацию можно получить по команде man test, ибо [ - это алиас test.

А как заполучить документацию для [[ ?

 , , ,

Xintrea
()

Как в Firefox блокировать отдельные изображения?

Вот например не нравится мне у кого-то аватарка на ЛОР-е. И я хочу ее простым способом заблокировать. В древней Опере можно было нажать на картинку правой кнопкой и выбрать «Заблокировать изображение».

А как это сделать в Firefox? Все что нахожу - это аддоны, которые отключают все картинки на странице. А нужно чтобы единичные картинки отключались.

 , ,

Xintrea
()

Не понимаю формата файла расширений MC

Имеется следующий общесистемный файл: /etc/mc/mc.ext

В нем есть такие строки:

### Images ###

type/^GIF
<------>Include=image

type/^JPEG
<------>View=%view{ascii} /usr/lib/mc/ext.d/image.sh view jpeg
<------>Include=image

type/^PC\ bitmap
<------>Include=image

type/^PNG
<------>Include=image

type/^JNG
<------>Include=image

type/^MNG
<------>Include=image

type/^TIFF
<------>Include=image

type/^PBM
<------>Include=image

type/^PGM
<------>Include=image

type/^PPM
<------>Include=image

type/^Netpbm
<------>Include=image

shell/.xcf
<------>Open=/usr/lib/mc/ext.d/image.sh open xcf

shell/.xbm
<------>Open=/usr/lib/mc/ext.d/image.sh open xbm

shell/.xpm
<------>Include=image
<------>View=/usr/lib/mc/ext.d/image.sh view xpm %f

shell/.ico
<------>Include=image

shell/i/.svg
<------>View=%view{ascii} /usr/lib/mc/ext.d/image.sh view svg
<------>Open=/usr/lib/mc/ext.d/image.sh open svg

Вопрос в том, что такое Include=image ? Как эта опция настраивает программу для просмотра и открытия картинки?

В самом файле есть ничего не говорящая подсказка:
keyword can be:
        include (matches an include directive)

Что такое include directive, откуда, куда, и что она подключает?

 , , ,

Xintrea
()

Почему в Git получается удалить из истории только один файл?

Нужно мне в локальном репозитарии удалить из Git несколько pyc-файлов.

Я даю такие команды:

$ git filter-branch --tree-filter 'rm -f configScript/mt2/lib/__pycache__/libCommand.cpython-35.pyc' HEAD
Rewrite 72e4719f86a600568a1a387a632a18fbdc1c6c03 (5/5) (1 seconds passed, remaining 0 predicted)
Ref 'refs/heads/master' was rewritten

$ git filter-branch --tree-filter 'rm -f configScript/mt2/lib/__pycache__/libConfig.cpython-35.pyc' HEAD
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

Видно, что первая команда сработала нормально. А вторая точно такая же команда для другого файла - нет, хотя имя удаляемого файла правильное.

Что нужно сделать, чтобы и вторая команда правильно выполнилась? Видимо, надо перезаписать какой-то бекап, но что и как - неясно.

 , ,

Xintrea
()

Как исправить пакетную базу в Debian-базед дистрибутиве?

Дистрибутив Astra 1.6.

В момент установки пакета с большим количеством зависимостей веселые ребята принудительно потушили сервер. Когда сервер включили, выяснилось, что невозможно устанавливать некоторые пакеты. Они просто не видны.

Пробовали делать во всяких последовательностях:

apt update
apt upgrade
apt -f install
apt-get clean

Толку никакого.

Решил проверить, сколько пакетов вообще видно:
apt list | wc -l
1616

А должно быть over 11000, то есть в несколько раз больше. На трех соседних серверах с теми же самыми репозитариями количество пакетов 11293, это никак не 1616.

Вопрос: как восстановить пакетную базу?



Перемещено hobbit из general

 , , ,

Xintrea
()

Почему minicom не пишет русскую букву Л?

Сейчас натолкнулся на такой баг.

На двух Linux-компьютерах запущен minicom 2.7 через COM-порт. Все бы ничего, но когда печатается текст, невозможно напечатать русскую букву «Л», именно большую букву.

Почему так? Кому помешала эта буква?

 ,

Xintrea
()

Не работает Proxy через SSH - соединение устанавливается, траффика нет

Нужно мне скачать пару файлов с репозитария Debian через proxy. Напрямую скачать не могу, потому что в сети стоит серверное MitM-оборудование и подменяет сертификаты.

Proxy решил сделать через ssh и собственный сервер serverinweb.ru в интернете.

Создаю соединение и порт:

ssh -D 8888 user@serverinweb.ru -f -N


Проверяю наличие порта:

netstat -pan | grep 8888
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 127.0.0.1:8888          0.0.0.0:*               LISTEN      11223/ssh
tcp6       0      0 ::1:8888                :::*                    LISTEN      11223/ssh


Пытаюсь скачать файл:

wget -e use_proxy=yes -e http_proxy=127.0.0.1:8888 http://ftp.debian.org/debian/dists/unstable/Release
--2022-06-22 15:04:17--  http://ftp.debian.org/debian/dists/unstable/Release
Подключение к 127.0.0.1:8888... соединение установлено.
Proxy-запрос отправлен. Ожидание ответа… Не получено никаких данных.
Повтор.

--2022-06-22 15:04:18--  (попытка: 2)  http://ftp.debian.org/debian/dists/unstable/Release
Подключение к 127.0.0.1:8888... соединение установлено.
Proxy-запрос отправлен. Ожидание ответа… Не получено никаких данных.
Повтор.


На самом mainserver.ru в его консоли я могу гулять по интернету через lynx например.

Что где надо донастроить, чтобы proxy-соединение работало?

 ,

Xintrea
()

Репозиторий Debian Linux не содержит файла Release

Для одного эксперимента я добавил в /etc/apt/sources.list строки:

deb http://ftp.debian.org/debian unstable main contrib non-free
deb-src http://ftp.debian.org/debian unstable main contrib non-free


Проверил, что url существует и отвечает по HTTP: http://ftp.debian.org/debian/dists/unstable/

Index of /debian/dists/unstable
[ICO]	Name	Last modified	Size
[PARENTDIR]	Parent Directory	 	-
[ ]	InRelease	2022-06-22 08:21 	162K
[ ]	Release	2022-06-22 08:21 	160K
[ ]	Release.gpg	2022-06-22 08:21 	1.6K
[DIR]	contrib/	2022-06-22 08:21 	-
[DIR]	main/	2022-06-22 08:21 	-
[DIR]	non-free/	2022-06-22 08:21 	-
Apache Server at ftp.debian.org Port 80


Однако при работе команды apt update возникает ошибка:

W: Репозиторий «http://ftp.debian.org/debian unstable Release» не содержит файла Release.

Как так не содержит? Что не так с адресом репозитария?

 ,

Xintrea
()

WordPress в качестве OpenID-провайдера уже не работает?

Привет, народ.

Помнится, WordPress когда-то работал в качестве OpenID провайдера:

https://wordpress.com/blog/2007/03/06/openid/

Сейчас лазаю по аккаунту на wordpress.com и не нахожу никаких упоминаний про OpenID.

Пробую проверить вход на LiveJournal через OpenID, потому что они были иницатором этой технологии. Указываю wordpress-овый OpenID и дальше страницы с надписью «LiveJournal поддерживает систему единой авторизации OpenID, что позволяет соотнести ваши аккаунты на разных сайтах – благодаря этому даже не зарегистрированные в LiveJournal пользователи могут войти в LJ в любой момент» никуда продвинуться не могу.

Что это значит? WordPress перестал поддерживать OpenID? LiveJournal разломал авторизацию по OpenID? Что-то еще?

 

Xintrea
()

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