скрипт который упрощает поиск и остальные манипуляцие с am
Хочу представить здоровую реализацию моих чаяний за последние эти пол года , это скрипт на shel, скрипт не мой, нашел тут
https://github.com/ivan-hc/AM-Application-Manager
Почитать подробно можете по выше приведённой ссылке, я же в двух словах раскрою что эта за замечательная утилита.
Это менеджер для поиска, просмотра-описаний,скачивания,установки а также обновления,по умолчанию в директорию /opt/ с созданием desktop файла для ярлыка запуска в меню , приложений в формате Appimage
Зависимости:
"coreutils",
"curl",
"grep",
"sed",
"wget"
"sudo"
"zsync "
при установке apimage c doublecmd-gtk попросил zsync потому добавил и его в заисимости.
--------------------
Установка:
скриптом:
wget https://raw.githubusercontent.com/ivan-hc/AM-application-manager/main/INSTALL && chmod a+x ./INSTALL && sudo ./INSTALL
вручную:
git clone https://github.com/ivan-hc/AM-application-manager.git
cd AM-application-manager
chmod a+x INSTALL
sudo ./INSTALL
-----------------------------
использование:
( опишу базовые команды но их много больше читайте подробнее по ссылке что выше)
-----------------------------
выводит весь список доступных Appimage в репах
-----------------------------
выводит в двух словах описание <apps_name>
можно использовать для поиска наличия appimage в репе
-----------------------------
устанавливает в /opt/<apps_name>
----------------------------
удаляет из /opt/<apps_name
----------------------------
обновляет все appimage
--------------------------
обновляет указанный appimage
-------------------------
остальные опции смотрим по ссылке на github
------------------------------
отвечу зачем -- я использую кастом от Debian 12 полученый с помощью live-kit , он создаёт сквош с установленым всем всем, и может я не прав но я подумал чем меньше этот сквош тем быстрее и легче загрузка(и вроде не зачем эти оптимизации у меня на компе сейчас 16 гигов памяти и ssd но...), appimage поможет избавить сквош от жира, кроме того желаю я например посмотреть на функционал новой приложухи, а систему не хочется пачкать, чем меньше буду дёргать dpkg тем лучще для системы, еще одна из идей на будущее подгрузить /opt/ в zram я не знаю как по здравости, и может меня опять глюкнуло, но меня тянет на эксперименты...
upd: Только что подумалось что в принципе, после развертывания системы, что с apt что с ap-m всё установится в changes и это всё равноцено, единствено чем эта утилита полезна это не дергать dpkg как сказал выше, то есть на посмотреть либо использовать программу установка которой нетривиальна, во общем инструмент всё равно годный.
upd2: С другой стороны чем меньше установлено в систему тем дерганий того же D-Bus при загрузке, если программа его использует, тем меньше дерганий разных процессов, то есть я слегка в замешательстве, что выбрать установку через apt или установку тех что есть через am.
Вероятней всего полностью обезжирить дистрибутив, прикрутить нужные мне скрипты, собрать live-kit и нужное добить через am , и если в нем не нашлись нужные программы добить через apt, заполнив changes.
Предлагаю скрипт который упрощает поиск и остальные манипуляцие с am, по сути использует основные функции am , такие как вывод инфо, установка удаление, обновление appimage, но так как скрипт использует peco(кто бы сомневался что его не будет и тут) то способен теперь легко и быстро найти нужную программу либо функционал (ищет по описанию нужной функции программы,например, dowload, или markdown, или editor,browser) также добавил пункт обновить все , который будет доступен при выборе программы, и в меню манипуляции с программой он будет навиду всегда, вы можее выбрать его, и тогда am обновит все необходимые и если нужно и себя.
как использовать
открыть терминал в ~ и ввести в него ./pam3, peco выведет список программ, в query peco можно задать имя программы если вы его знаете либо искомую функцию программы категорию,так как в строках описания они упоминаются то peco релевантно их выведет,
pam3 имя скрипта которое для него я выбрал, естествено am должен быть установлен в систему. как установить смотрите топик темы.
код:
#!/bin/bash
am -l >aml.txt
sed -e '/YOU HAVE INSTALLED [0-9]* APPLICATIONS OUT OF [0-9]* AVAILABLE/d' -e '/LIST OF THE [0-9]* APPLICATIONS AVAILABLE IN THE '\''AM'\'' REPOSITORY:/d' -e '/^$/d' ./aml.txt >amlf.txt
while true; do
sel_file="$(cat amlf.txt | peco)"
# Проверяем, была ли нажата клавиша Esc
if [ -z "$sel_file" ]; then
echo "Exiting the script."
break
fi
sel_file="$(echo "$sel_file" | sed 's/.*◆ *//; s/:.*//')"
clear
#echo "$sel_file" >./sel_file.txt
while true; do
options=("ВЫВОД ИНФО" "УСТАНОВИТЬ" "УДАЛИТЬ" "ОБНОВИТЬ-ВСЕ")
selected_option=$(printf "%s\n" "${options[@]}" | peco)
# Проверяем, была ли нажата клавиша Esc
if [ -z "$selected_option" ]; then
echo "Exiting to main menu."
break
fi
case "$selected_option" in
"ВЫВОД ИНФО")
# Код для секции "ВЫВОД ИНФО"
echo "ВЫВОД ИНФО--$sel_file"
b="$sel_file"
am -a `echo $b`
echo "выбран $sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"УСТАНОВИТЬ")
# Код для секции "УСТАНОВИТЬ"
echo "УСТАНОВИТЬ--$sel_file"
am -i "$sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"УДАЛИТЬ")
# Код для секции "УДАЛИТЬ"
echo "УДАЛИТЬ--$sel_file"
am -r "$sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"ОБНОВИТЬ-ВСЕ")
# Код для секции "ОБНОВИТЬ-ВСЕ"
echo "Обновляем все Appimage для которых есть обновления!"
am -U
;;
*)
# Обработка некорректного ввода
echo "Некорректный выбор"
;;
esac
done
done
А чего тянуть вот код с использованием dmenu, прошу тэстов
как говорил нужно установить suckless-tools весят 54кб
код
#!/bin/bash
am -l >aml.txt
sed -e '/YOU HAVE INSTALLED [0-9]* APPLICATIONS OUT OF [0-9]* AVAILABLE/d' -e '/LIST OF THE [0-9]* APPLICATIONS AVAILABLE IN THE '\''AM'\'' REPOSITORY:/d' -e '/^$/d' ./aml.txt >amlf.txt
while true; do
sel_file="$(cat amlf.txt | dmenu -i -l 20)"
# Проверяем, была ли нажата клавиша Esc
if [ -z "$sel_file" ]; then
echo "Exiting the script."
break
fi
sel_file="$(echo "$sel_file" | sed 's/.*◆ *//; s/:.*//')"
clear
#echo "$sel_file" >./sel_file.txt
while true; do
options=("ВЫВОД ИНФО" "УСТАНОВИТЬ" "УДАЛИТЬ" "ОБНОВИТЬ-ВСЕ")
selected_option=$(printf "%s\n" "${options[@]}" | dmenu -i -l 20)
# Проверяем, была ли нажата клавиша Esc
if [ -z "$selected_option" ]; then
echo "Exiting to main menu."
break
fi
case "$selected_option" in
"ВЫВОД ИНФО")
# Код для секции "ВЫВОД ИНФО"
echo "ВЫВОД ИНФО--$sel_file"
b="$sel_file"
am -a `echo $b`
echo "выбран $sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"УСТАНОВИТЬ")
# Код для секции "УСТАНОВИТЬ"
echo "УСТАНОВИТЬ--$sel_file"
am -i "$sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"УДАЛИТЬ")
# Код для секции "УДАЛИТЬ"
echo "УДАЛИТЬ--$sel_file"
am -r "$sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"ОБНОВИТЬ-ВСЕ")
# Код для секции "ОБНОВИТЬ-ВСЕ"
echo "Обновляем все Appimage для которых есть обновления!"
am -U
;;
*)
# Обработка некорректного ввода
echo "Некорректный выбор"
;;
esac
done
done
что нравится не пришлось ломать ничего пару строчек переписать и всё! То есть логика работы похожая. ... буду идти домой , с довольной улыбкой на лице )
1 - на пробу поставил из 'am' 'btop'. Он у меня почему-то не запустился (ddog-32). ! Но в /opt-потрахах он выглядел как 'Roxfiler~овские АппРаны'.
2 - потом увидел в 'am-списках':
"◆ appimagetool : Tool to generate an AppImage from an existing AppDir." Он у меня не захотел
(ddog-32). если 32-х битная система то ожидаемо, appimage для 64-х систем
и справедливости ради спасибо нужно сказать автору am , я так... популяризатор. но насчёт
не только эти но и другие тоже не работают.
!!!
Я больше скажу , с am нужно быть акуратным, сам автор про это и предупредил, перед установкой смотреть что скачиваешь
это не репозиторий, нужно отдавать себе отчет что эти appimage тянутся из файлопомойки github
смотреть на поведение программ, мне например очень не понравилось что установленая программа , конвертер аудиофайлов просит что-то скачать откуда-то, ты разрешаешь ей это, смотришь на скачаный файл а это питоновский бинарник, который естествено не посмотреть текстовым, я эту программу взашей и на мороз, также например установил doublecomander а у него функция вызова терминала по F9 не работает, audacyti нет возможности экспорта,то есть функционал урезаный, и так далее, но мне этот am для браузеров нужен, а также для месенджеров, вот для этого идеален , можно также после первинчной установки скрипт не открою америки но новичкам, как мне когда-то , пощекочит нервы
#!/bin/bash
#set -x
# Путь к текстовому файлу с именами приложений
APP_LIST_FILE="$PWD/installapps"
# Установка приложений из файла
xargs sudo apt install -y < "$APP_LIST_FILE"
# Масовая установка нужных appimage
am -i firefox
am -i librewolf
am -i moonfm
am -i libreoffice-fresh-standard
am -i qmplay2
am -i cpu-x
am -i marktext
am -i viber
am -i ksnip
am -i flameshot
am -i simplescreenrecorder
echo "ВСЕ ПРОГРАММЫ И ПАКЕТЫ APPIMAGE УСТАНОВЛЕНЫ !!! СЧАСТЛИВОГО ИСПОЛЬЗОВАНИЯ СИСТЕМЫ !!!"
в installapps список пакетов для установки с помощью apt
чем am хорош тем что не тратится время при установке используя apt, dpkg должен разруливать индексировать это всё время, тут просто скачивание, быстро всё.
knn если интересует тема создания своих appimage правда строго под debian 12 , из репы то вам сюда https://forum.puppyrus.org/index.php?topic=24145.msg188200#new промотать на начало страницы ,если что не ясно помогу, у меня так некоторые программы собраны и работают.
Всё ок ,такое давление иногда полезно, вот нашёл замену dmenu , и peco, занимает всего 39kb , написан на C значит быстрый , функция которая меня пленила называется fuzzy finder (нечёткий поиск), утилита называется fzy , есть в репе debian 12
код:
#!/bin/bash
am -l >aml.txt
sed -e '/YOU HAVE INSTALLED [0-9]* APPLICATIONS OUT OF [0-9]* AVAILABLE/d' -e '/LIST OF THE [0-9]* APPLICATIONS AVAILABLE IN THE '\''AM'\'' REPOSITORY:/d' -e '/^$/d' ./aml.txt >amlf.txt
while true; do
sel_file="$(cat amlf.txt | fzy -l 40)"
# Проверяем, была ли нажата клавиша Esc
if [ -z "$sel_file" ]; then
echo "Exiting the script."
break
fi
sel_file="$(echo "$sel_file" | sed 's/.*◆ *//; s/:.*//')"
clear
#echo "$sel_file" >./sel_file.txt
while true; do
options=("ВЫВОД ИНФО" "УСТАНОВИТЬ" "УДАЛИТЬ" "ОБНОВИТЬ-ВСЕ")
selected_option=$(printf "%s\n" "${options[@]}" | fzy -l 30)
# Проверяем, была ли нажата клавиша Esc
if [ -z "$selected_option" ]; then
echo "Exiting to main menu."
break
fi
case "$selected_option" in
"ВЫВОД ИНФО")
# Код для секции "ВЫВОД ИНФО"
echo "ВЫВОД ИНФО--$sel_file"
b="$sel_file"
am -a `echo $b`
echo "выбран $sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"УСТАНОВИТЬ")
# Код для секции "УСТАНОВИТЬ"
echo "УСТАНОВИТЬ--$sel_file"
am -i "$sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"УДАЛИТЬ")
# Код для секции "УДАЛИТЬ"
echo "УДАЛИТЬ--$sel_file"
am -r "$sel_file"
echo "Для продолжения жмем ВВОД"
read ex
clear
;;
"ОБНОВИТЬ-ВСЕ")
# Код для секции "ОБНОВИТЬ-ВСЕ"
echo "Обновляем все Appimage для которых есть обновления!"
am -U
;;
*)
# Обработка некорректного ввода
echo "Некорректный выбор"
;;
esac
done
done
отказался от pick в пользу fzy , протестирую и пожалуй снова нашёл свою любовь всей своей жизни(любвеобильный однако :D ) скрипт отрабатывает как и ожидается, мне нравится.
upd:
Добавил количество строк выводимых до 40-а , по умолчанию 10...
бегу пробовать вместо peco в остальных скриптах (peco иногда глючит, в некоторых дистрибутивах)
upd2: Вау и Вууф fzy прекрасен, работает везде , нет эмоциям края!!!
не знаю почему но в коде два раза прописался fzy, исправил...
о... appimage для 64-х систем ...
- не факт - например поставил 'am' ч/з wget-команду из Шапки на 32-bit-ddog --> :
-- в листинге при запущенном peco-скрипте - 94 проги (vs ~= 2000 для 64-bit) ;
-- поставил btop :
root@pc:~# file /opt/btop/btop
/opt/btop/btop: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, BuildID[sha1]=3570a458670210b103da45068d2dcd220f17e497, for GNU/Linux 2.6.32, stripped
-- # хотя он почему-то не запускается
-- 'btop-am-32-bit' - в формате 'DirAppRun' (vs 64-bit)
=================
# это я для отчета )
зы
32-bit-ddog - запущен с root-логином поэтому нет уверенности - может где 'sudo' попалось и возможно помешало...
============
зызы
дошло про "поиск" в скрипте ( когда на 64-bit 1900 прог увидел) - не знаю возможно ли такое сделать на 'dialog'