[macOS] Куда подевался Keychain Access?

В macOS 15 (Sequoia), как и ряд других системных приложений (признанных устаревшими), Keychain Access больше не отображается в Launchpad, поэтому тем, кто привык использовать Keychain для управления сертификатами, необходимо искать его в /System/Library/CoreServices/Applications.

А что делать, если хочется иметь доступ к Keychain Access через Launchpad? Ярлык (alias) или симлинки не отображаются в Launchpad, т.к. он ориентируется на файлы с расширением .app.

Проще сделать дубликат через Automator, для этого:

  • Откройте Automator
  • Выберите «Создать новое Приложение»
  • Добавьте действие «Запустить программу» и выбрать /System/Library/CoreServices/Applications/Keychain Access.app
  • Сохраните Automator-приложение в папке /Applications -> оно появится в Launchpad

[macOS] Удаление иконки из Launchpad

Бывает так, что какие-то программы добавляют свои ярлыки в Launchpad, но непосредственно в директории /Applications их нет. А где тогда? Скорее всего, в пользовательской директории /Users/<user_name>/Applications. Системные приложения, к слову, находятся в /System/Applications/.

С такой ситуацией столкнулся, когда в приложении Steam установил игру, а потом, после ее удаления, заметил, что в Launchpad ярлык игры продолжал быть. В данном случае ярлык располагался как раз в /Users/<user_name>/Applications.

Универсальный вариант – чтобы точно установить путь, где расположен ярлык из Launchpad, нужно перетащить его в Dock, затем через контекстное меню выбрать «Options» -> «Show in Finder».

[nginx] The following signatures were invalid

На Debian 11 (Bullseye) при обновлении списка пакетов через apt-get update получаем ошибку:

Err:6 http://nginx.org/packages/debian bullseye InRelease
The following signatures were invalid: EXPKEYSIG ABF5BD827BD9BF62 nginx signing key <signing-key@nginx.com>

Решение – загружаем новый ключ:

curl -O https://nginx.org/keys/nginx_signing.key && apt-key add ./nginx_signing.key

[macOS] Увеличить размер шифрованного dmg-образа

Если нужно зашифровать какую-то директорию, то для этого в macOS можно использовать манипуляцию с образами — через Disk Utility выбираем создание нового образа «из папки». На этом же этапе можно выбрать опцию и шифрования. В дальнейшем, образ можно монтировать, когда есть в этом потребность.

Правда, обнаружил нюанс — образ создается с фиксированным размером, и при попытке что-то в него положить новое, приводит к ошибке о нехватке места. Ок, через Disk Utility можно также сделать Resize, но у меня эта попытка каждый раз выдавала ошибку.

А вот изменение размера через консоль сработало (в примере — до 800 МБ):

hdiutil resize -size 800m <путь до образа>

Чтение больших файлов из архива

Есть RAR-архив с паролем, в нем текстовый файл размером ~4 ГБ, который после распаковки занимает ~120 ГБ.

Задача — посмотреть, что находится в файле, хотя бы какую-то часть данных (например, первые 100 строк).

Используем утилиту unar для распаковки:

unar e p<ПАРОЛЬ> <название архива>.rar <название файла в архиве>.txt> <имя файла для распаковки>.txt

В итоге на выходе получаем распакованный txt-файл. Открыть его «блокнотом» или чем-то похожем не получится — не хватит оперативной памяти. Поэтому вытащим только определенные строки:

head -n <число строк> <исходный файл>.txt > <результирующий файл>.txt

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

А узнать, сколько вообще строк в файле, можно так:

wc -l файл.txt

Узнать уровень износа SSD в Apple MacBook

Узнать уровень износа диска SSD в Apple MacBook можно с помощью утилиты Smartmontools.

Устанавливаем:

brew install smartmontools

Вызываем:

sudo smartctl /dev/disk0 -a

Строка Percentage Used покажет уровень износа от заявленного уровня записи производителем (в примере ниже — 4% для ноутбука 2019 года).

sudo smartctl /dev/disk0 -a
Password:
smartctl 7.4 2023-08-01 r5530 [Darwin 23.2.0 x86_64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number: APPLE SSD AP0512M
Serial Number: xxxxxxxxx
Firmware Version: 1306
PCI Vendor/Subsystem ID: 0x106b
IEEE OUI Identifier: 0x000000
Controller ID: 0
NVMe Version: <1.2
Number of Namespaces: 1
Local Time is: Sat Dec 23 17:30:28 2023 MSK
Firmware Updates (0x02): 1 Slot
Optional Admin Commands (0x0004): Frmw_DL
Optional NVM Commands (0x0004): DS_Mngmt
Maximum Data Transfer Size: 256 Pages

Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 0.00W — — 0 0 0 0 0 0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x00
Temperature: 35 Celsius
Available Spare: 100%
Available Spare Threshold: 99%
Percentage Used: 4%
Data Units Read: 129,247,158 [66.1 TB]
Data Units Written: 105,425,136 [53.9 TB]
Host Read Commands: 1,470,940,608
Host Write Commands: 818,122,034
Controller Busy Time: 0
Power Cycles: 125
Power On Hours: 849
Unsafe Shutdowns: 17
Media and Data Integrity Errors: 0
Error Information Log Entries: 0

Read 1 entries from Error Information Log failed: GetLogPage failed: system=0x38, sub=0x0, code=745

[Linux] Очистка лог-файлов

Логи по умолчанию хранятся в /var/logs. Узнать размер занимаемых данных:

/var/log# du -sh */ | sort -hr

800.1M journal/
6.2M atop/
1.7M nginx/
1.5M exim4/
344K apt/
124K mysql/
96K proftpd/
72K apache2/
8.0K installer/
4.0K unattended-upgrades/
4.0K ntpstats/
4.0K dbconfig-common/

К примеру, у меня директория journal занимает непозволительно много места. Сначала чиним:

urnalctl --vacuum-size=100M
journalctl --vacuum-time=7d

Затем очищаем:

rm -r /var/log/journal/

[macOS] Запуск веб-сервера одной командой

Чтобы поднять примитивный локальный веб-сервер на macOS, необязательно качать из сети сторонние решения (XAMPP, OpenServer…) — все что нужно, скорее всего, уже работает «из коробки».

Перейдите в директорию, которая будет являться корнем веб-сервера и выполните следующую команду:

Если установлен Python 2:

python -m SimpleHTTPServer 8000

Если установлен Python 3:

python3 -m http.server --cgi 8080

Если установлен PHP:

php -S localhost:2222

Сервер будет работать по адресу http://localhost:<порт>

Если установлен npm:

npm i -g serve
serve

[macOS] Отключение Gatekeeper

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

Для MacOS 12 (Monterey):
sudo spctl --global-disable

Для MacOS 11 (Big Sure):
sudo spctl —master-disable

[macOS] Дублирование программ в списке «Открыть с помощью…»

Столкнулся с тем, что в контекстном меню «Открыть с помощью…» (Open with…) присутствуют дублирующие элементы одних и тех же программ, но с разными версиями.

Баг возникает после обновления приложения – сведения о старой версии почему-то продолжает числиться в списке «Открыть с помощью…».

Решение: в консоли выполнить команду

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

Затем перезапустить Finder:

killall -kill Finder