Подробное объяснение системы управления пакетами OPKG! Поможем вам управлять системным программным обеспечением OpenWrt [легко понять]
Подробное объяснение системы управления пакетами OPKG! Поможем вам управлять системным программным обеспечением OpenWrt [легко понять]

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

1. Знакомство с ОПКГ

  • OPKG(Open/OpenWrt Package)Это легкая и быстрая система управления программными пакетами.,да IPKG клон, Он стал стандартом де-факто в области встраиваемых систем с открытым исходным кодом. ОПКГ Обычно используется во встроенных устройствах, таких как маршрутизаторы и коммутаторы. используется дляУправляйте загрузкой, установкой, обновлением, удалением и запросом пакетов программного обеспечения и т. д.,и обрабатывать посылки Зависимости。Функцияи рабочий стол Linux Операционная система Ubuntu в apt-get、Redhat в yum похожий.
  • OPKG даодинНацельтесь на корневую файловую системуПолный Функцияизпрограммное обеспечение Менеджер пакетов。Это не толькодасуществовать独立из目录Установитьпрограммное обеспечение,Также может быть использован дляУстановите модули ядра и драйверыждать。OPKG Во время установки зависимости пакета при установке программного обеспечения будут автоматически решены. В случае возникновения ошибки установка будет прервана.

2. Принцип работы ОПКГ

OPKGЗаказосуществлятьвстречаПрочтите информацию в следующих 3 частях.

  • Местоположение файла конфигурации по умолчанию — /etc/opkg.conf.
  • Информация о состоянии установленного пакета хранится в каталоге /usr/lib/opkg.
  • Информация о пакете программного обеспечения хранилища программного обеспечения хранится в каталоге /var/opkg-lists.

при обновлении

  • При выполнении «opkg update» для обновления списка программного обеспечения.
    • OPKG первыйвстречаПрочтите файл конфигурации /etc/opkg.conf.,В этом файле сохраняется информация о глобальной конфигурации OPKG.
    • Сразу после этого ОПКГ Файл списка пакетов программного обеспечения будет загружен в соответствии с настроенным адресом. Packages.gz в /var/opkg-список каталог, этот файл принадлежит репозиторию программного обеспечения Список программного обеспечения и его зависимостей создается с помощью gzip Сжатые файлы, занимающие сетевые потоки при передаче по сети. Количество относительно небольшое.
  • Любые последующие команды установки должны сначала прочитать эти два файла.

После установки программного обеспечения

  • программное обеспечение УстановитьпослеинформациявстречадержатьсуществоватьНиже каталога /usr/lib/opkg/,Прямо здесьЭквивалент реестра в операционной системе Windows.。он содержитсостояниедокумент,OPKG Определите, установлено ли программное обеспечение, открыв этот файл состояния. Установленная версия, удовлетворены ли зависимости и т. д., чтобы можно было определить версию установленного программного обеспечения, путь к файлу и другую информацию.

3. Формат команды OPKG

Функции ОПКГ в основном делятся на две категории:

  • Одна из них — это команда управления программным пакетом.
  • Другой — это команда запроса пакета программного обеспечения.
  • OPKG должен иметь подкоманду, формат команды следующий:
Язык кода:javascript
копировать
opkg [options...] sub-command [arguments...]
  • Вот некоторые из наиболее часто используемых вариантов:
    • -A: запросить все пакеты программного обеспечения, включая неустановленные пакеты программного обеспечения.
    • -d <dest_name>:Использовать в качестве корневого каталога установки пакета.。да Конфигурациядокумент中定义из目录名称。
    • -f <conf_file>:Укажите использование как opkg файл конфигурации. Если не указано, используется конфигурация по умолчанию. Это файл /etc/opkg.conf.
    • --nodeps: Не устанавливать в соответствии с зависимостями, только Установить пакеты сами. Это может привести к отсутствию файлов зависимостей, В результате программа не может быть выполнена.
    • –autoremove: автоматически удалять пакеты программного обеспечения, которые больше не используются при Удалить пакет (зависимости будут автоматически установлены во время установки).
    • –force-reinstall:принудительный перезапуск Установить пакеты, версия пакета программного обеспечения не будет установлена ​​повторно, если версия не была изменена. Добавьте эту опцию, чтобы принудительно переустановить.

4. Такие функции, как обновление, установка, удаление и обновление пакетов программного обеспечения.

opkg update

  • Должен Заказдля обновленийМожет быть установленсписок пакетов программного обеспечения.
  • Должен ЗаказНикакие параметры не требуются,осуществлять Скачать с адреса серверапрограммное обеспечениесписок пакетовдокументиХранится в каталоге /var/opkg-lists/.
  • OPKG необходимо прочитать этот файл при установке или обновлении. Этот файл представляет все доступные пакеты программного обеспечения в текущем хранилище. Вы также можете удалить этот файл, чтобы освободить место на диске. Перед установкой программного обеспечения необходимо получить этот файл еще раз.

opkg install

  • Должен Заказиспользуется дляУстановить пакеты,требуется параметр,Передайте имя пакета。Если между пакетамиЕсть зависимости,Все зависимые пакеты программного обеспечения будут загружены автоматически.,И последовательно установите все зависимые пакеты программного обеспечения.
  • Случай: следующий код используется для установки файлового пакета программного обеспечения, а пакет программного обеспечения libmagic, от которого он зависит, будет установлен автоматически.
Язык кода:javascript
копировать
 opkg install file
 

opkg remove

  • Должен Заказиспользуется дляУдалить пакет,требуется параметр,Передайте имя пакета。
  • Следует отметить, что,Пакеты, автоматически установленные во время установки, не будут удалены.,Нужно удалить вручную,Или в Удалить пакет одновременно увеличивается Параметр (–autoremove) также удалит ненужные установочные пакеты.
  • Следующий код используется для удаления пакета файлов и зависимых пакетов, которые больше не используются.
Язык кода:javascript
копировать
 opkg remove file --autoremove
 

opkg upgrade

  • Должен Заказиспользуется дляОбновление пакетов программного обеспечения.
  • еслиПакет программного обеспечения не установлен. После выполнения этой команды эффект аналогичен «установке opkg».
  • Если вы хотите обновить несколько пакетов программного обеспечения, просто разделите их пробелами и перечислите после команды. Например, используйте opkg update ip wget для обновления двух пакетов программного обеспечения.
  • Примечание:Для большинства пользователей,Обновление пакетов не рекомендуется。OpenWrtОбновление после выпуска в большинстве случаевда Нет Может能из,Это связано с тем, что OpenWrt обычно больше не обновляется после выпуска.,Если только снимок транка не скомпилирован андроидом (buildbot) автоматические обновления. Если ядро ​​обновляется, это может привести к риску обновления, поскольку ядро ​​может быть несовместимо с первоначально установленным прикладным программным обеспечением. Поэтому обычно обновляются только приложения, то есть пакеты программного обеспечения, не относящиеся к ядру.

5. Информационный запрос пакетов программного обеспечения

  • Команду запроса OPKG можно запросить в репозитории программного обеспечения или в работающей системе. OPKG предоставляет функцию двустороннего запроса для пакетов программного обеспечения: прямой запрос, то есть запрос списка файлов, содержащихся в пакете программного обеспечения; обратный запрос, который запрашивает соответствующий пакет программного обеспечения из файлов, установленных в системе.

opkg list

  • Должен Заказиспользуется дляСписок всех доступных пакетов,Формат перечисленного контента:
Язык кода:javascript
копировать
 Имя пакета – Версия – описывать
 

  • Содержимое описания может иметь разрывы строк. Если вы используете команду grep для поиска пакетов программного обеспечения, обратите внимание, что grep соответствует одной строке, поэтому результаты, полученные с помощью grep, не точны.

opkg list-installed

  • Должен Заказиспользуется дляСписок установленных пакетов в системе.

opkg list-changed-conffiles

  • Должен Заказиспользуется дляПеречисляет файлы конфигурации, измененные пользователем.

opkg files <pkg>

  • Должен Заказиспользуется для列出属于这个программное обеспечение Сумка(<pkg>)ввседокумент,Этот пакет уже должен быть установлен.
  • Код, показанный ниже, используется для просмотра списка файлов, содержащихся в пакете ip.

opkg search <file>

  • Должен ЗаказИспользуется для вывода списка предоставленных пакетов.,Примечание. Вам необходимо передать абсолютный путь к файлу.

opkg find <regexp>

  • Должен Заказиспользуется для列出Имя пакетаи<regexp>Соответствующие пакеты。<regexp>даодинрегулярное выражение, Вы можете сопоставить точно или использовать звездочки для нечеткого соответствия, например, использовать «net*» или «*net*» для сопоставления. Оборудован NetCat.

opkg info [pkg]

  • Должен Заказиспользуется дляОтображение информации об установленных пакетах [pkg],Включать Имя пакета、Версия、Имя зависит от пакета、Установитьсостояниеи Установитьвремяждать。если没有指定参数则输出все已Установить пакетыинформация。“opkg status» имеет ту же функцию, что и эта команда.

opkg download <pkg>

  • Должен Заказиспользуется для将программное обеспечение Сумка<pkg>Загрузить в текущий каталог。

opkg print-architecture

  • Должен Заказиспользуется дляПеречислите архитектуру установочного пакета.

opkg whatdepends [-A] [pkg]

  • Должен Заказиспользуется дляДля установленного пакета программного обеспечения выведите пакеты программного обеспечения, которые зависят от этого пакета.
  • Код, показанный ниже, запрашивает пакеты, которые зависят от libmagic.

6. Файл конфигурации /etc/opkg.conf.

  • OPKG требуется файл конфигурации для сохранения глобальной конфигурации, например, где загрузить программное обеспечение, где его установить и т. д.
  • Файл конфигурации OPKG по умолчанию — /etc/opkg.conf со следующим содержимым:

Адрес склада программного обеспечения

  • OPKG может использовать несколько складов, каждому складу нужен уникальный идентификатор, то есть использовать свое логическое имя.
  • Например, вы можете добавить в файл /etc/opkg.conf следующее содержимое:
Язык кода:javascript
копировать
 src/gz attitude_adjustment http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/packages/ 
src/gz local http://192.168.1.106:8080/openwrt

Пользовательский каталог установки

  • Очень полезная функция OPKG — возможность указать каталог установки любого установочного пакета. Каталог установки определяется в файле конфигурации /etc/opkg.conf.
  • Формат:Конфигурациядокумент中目из地址Форматдак dest Вначале следует имя адреса назначения и, наконец, путь к каталогу, который должен начинаться с корневого каталога.
Язык кода:javascript
копировать
dest root /
dest ram /tmp
dest usb /opt

  • После определения каталога установки,Имя адреса назначения можно указать в команде установки.。Установитьчас Название адреса назначенияможно только цитировать В /etc/opkg.conf Имя адреса, определенное, например, "-d ram» означает, что программное обеспечение будет установлено во временный каталог. /tmp Вниз.
  • Команда установки аналогична следующей:
Язык кода:javascript
копировать
 opkg install <pkg> -d <Название адреса назначения>
 

настройки прокси

  • OPKG устанавливается путем загрузки пакета программного обеспечения. Если вы выходите в Интернет через прокси-сервер HTTP, вы не можете напрямую подключиться к адресу сервера. В этом случае вам необходимо установить адрес прокси-сервера.
  • Добавьте следующие настройки в /etc/opkg.conf:
Язык кода:javascript
копировать
 option http_proxy http://proxy.example.org:3128/
 

  • Если прокси-сервер требует аутентификации, вам необходимо добавить следующую информацию для аутентификации:
Язык кода:javascript
копировать
 option proxy_username xxxxxx 
option proxy_password xxxxxx
  • Если вы используете команду wget busybox, этот инструмент не поддерживает функцию аутентификации, и аутентификация не удастся во время загрузки. Вместо этого вы можете передать имя пользователя и пароль в URL-адресе:
Язык кода:javascript
копировать
 option http_proxy http://username:password@proxy.example.org:3128/

7. Структура пакета OPKG (.ipk)

  • OPKGУстановить Сумка(ipkдокумент)даодинсжатые файлы gzip,доступныйfileЗаказ Приходите и посмотритедокумент Форматописывать。
  • на самом деле,Файл ipk представляет собой файл «tar.gz».,Мы можем использовать команду tar для распаковки и просмотра содержимого файла.,его содержание Включать Два сжатиядокументиодин Версиядокумент。

Демонстрационный случай:

  • В качестве примера мы возьмем программный пакет TcpDump, чтобы проиллюстрировать формат установочного пакета.
  • Сначала используйте команду tar для распаковки установочного пакета TcpDump. После завершения распаковки будут созданы 3 файла. Команда выглядит следующим образом:
  • debian-binary:debian-binary представляет собой обычный текстовый файл, содержащий строку «2.0», Формат представления debian2.0 Формат.
  • data.tar.gz:data.tar.gz Содержит файл «/usr/sbin/tcpdump», который устанавливается во время установки. Пакеткаталог.
  • control.tar.gz:control.tar.gzТолько после декомпрессии Включатьодиндокумент“control”,документсодержание Включать Имя пакета、Версия、Зависимости、Категория、состояние、приоритет、Архитектура платформыипрограммное обеспечениеописыватьждать。Например,TcpDump может изучать зависимости программы libc и libpcap библиотека, libc Библиотека уже установлена ​​в системе по умолчанию. TcpDump автоматически Загрузите и установите libpcap пакет программного обеспечения. контроль Содержимое файла:
  • Примечание:Над нашимTcpDumpпрограммное обеспечение Сумка解压послеизcontrol.tar.gzдокумент再次解压после只有один“control”документ,Однако файл control.tar.gz другого программного обеспечения после распаковки может также содержать некоторые другие управляющие файлы.,Содержание следующее:

8. Некоторые демонстрационные примеры команды opkg

Установить пакет svn

  • Инструмент svn позволяет отправлять содержимое маршрутизатора непосредственно в базу кода.
  • первый шаг:первый我们更新Можетиспользовать список пакетов программного обеспечения.
Язык кода:javascript
копировать
 opkg update

  • Шаг второй:Затем запросите все с помощьюsvn信息изпрограммное обеспечение Сумка(нода Не найдено)。
  • Примечание:также Можетк通过“opkg find", чтобы найти пакет программного обеспечения. Эта команда требует от нас запомнить имя пакета программного обеспечения, который мы хотим найти, или часть имени. Для его поиска можно использовать подстановочный знак звездочки "*". Например, используйте " опкг find subversion*”。
Язык кода:javascript
копировать
 opkg list |grep svn
  • Шаг третий:мы знаемsvnполное имя subversion, мы меняем ключевое слово на query. Ниже показано, что клиент Subversion представляет собой клиентский инструмент SVN.
Язык кода:javascript
копировать
 opkg list |grep subversion
  • Шаг 4:我们使использовать Заказ Приходить Установитьклиентский инструмент SVN.
Язык кода:javascript
копировать
 opkg install subversion-client

Запрос списка установленных файлов программного пакета OPKG

  • Пользователи часто хотят знать, к какому пакету программного обеспечения принадлежит определенный файл или какие файлы содержит определенный пакет программного обеспечения. Вот тут-то и пригодится команда запроса OPKG.
  • Запросите пакет программного обеспечения, которому принадлежит файл.
Язык кода:javascript
копировать
 opkg search /usr/bin/netcat 

  • Запросите файлы, содержащиеся в пакете программного обеспечения.
Язык кода:javascript
копировать
 opkg files subversion-client

Пользовательский каталог установки

  • Если в роутере недостаточно места, нужно установить ПО на другой раздел диска. Например, программное обеспечение Устанавливаем на раздел USB-диска, например устанавливаем file、nmap и openvpn пакет программного обеспечения.
  • первый шаг:USB Файловая система диска обычно vfat формат, мы сначала устанавливаем vfat отформатируйте соответствующие пакеты программного обеспечения, а затем смонтируйте USB-диск в /srv каталог.Для установки используется следующая команда: mount Инструменты и крепление USB диск на srv каталог.
Язык кода:javascript
копировать
opkg install knod-nsl-cp437
opkg install knod-nsl-iso8859-1
opkg install mount-utils
mkdir /srv -p
mount /dev/sdb1 /srv
  • Шаг второй:Затем мы редактируем/etc/opkg.conf файл, добавьте в конец файла строку с содержимым «dest usb /srv”。
Язык кода:javascript
копировать
 echo "dest usb /srv">> /etc/opkg.conf
  • Шаг третий:Ну вот МожеткУстановите программное обеспечение на внешний USB-диск и запустите его.Понятно,Сначала обновите список пакетов,Затем установите программное обеспечение.
Язык кода:javascript
копировать
 opkg update 
opkg install nmap -d usb
  • Шаг 4:существовать nmap Если после завершения установки вы выполните nmap не найдет эту команду, и вам нужно установить переменные среды PATH。 Если это всего лишь временная настройка, вы можете использовать ее в терминале export команда для установки. Если вы хотите, чтобы изменения вступили в силу после перезапуска, вам необходимо /etc/profile изменено в файле. Отредактируйте файл конфигурации /etc/profile и добавьте новый каталог программного обеспечения в PATH в переменных среды. Следующая команда используется для добавления каталога srv в переменные среды поиска команд и поиска динамической библиотеки.
Язык кода:javascript
копировать
 export PATH=/bin:/sbin/:/usr/bin/:/usr/sbin:/srv/bin:/srv/sbin:/srv/usr/bin:/srv/usr/sbin  
 export LD_LIBRARY_PATH=/srv/lib:/srv/usr/lib
  • Шаг 5:существоватьосуществлять nmap Также выдает ошибку «nmap: can’t load library «libstdc++.so.6» в настоящее время из-за изменения Имя библиотеки файлов статической ссылки не было успешно создано. Вам нужно только переименовать файл «libstdc++.so.6.0.16» в «libstdc++. так.6" достаточно.
  • Шаг 6:существовать Установить openvpn Когда, если ваш установочный пакет находится в /etc/init.d В каталоге есть сценарий запуска, но вы устанавливаете его в В каталоге внешнего диска вам необходимо создать программную ссылку запуска, например:
Язык кода:javascript
копировать
 ln -s /srv/etc/init.d/openvpn /etc/init.d/openvpn

  • Шаг 7:еслипрограммное обеспечение因为链接库из问题Нет能启动,Просто нужносуществовать Добавьте каталог библиотеки динамической компоновки в сценарий запуска.。 Кроме того, вам необходимо решить проблему пути к файлу конфигурации по умолчанию конкретной программы. Вам необходимо указать путь к файлу конфигурации через командную строку. Path, вы также можете добавить скрипт-оболочку. Ниже приводится добавление file скрипт-обертка. Установить file и использовать -m чтобы указать путь к файлу конфигурации и передать его в конце chmod +x Увеличьте разрешения на выполнение, чтобы вы могли делать то же самое, что и раньше. осуществлять file Заказал.
Язык кода:javascript
копировать
opkg install file –d usb

touch /usr/bin/file

echo "#!/bin/sh" > /usr/bin/file

echo "/srv/usr/bin/file -m /srv/usr/share/misc/magic \"\$@\"" >>/usr/bin/file

chmod +x /usr/bin/file
  • Две вещи, на которые следует обратить внимание:
    • Многие пакеты не могут быть запущены в произвольном расположении или не могут быть запущены успешно, поскольку это Местоположение по умолчанию для чтения файлов конфигурации (например, file команда), поэтому в параметре необходимо указать расположение файла конфигурации, иначе это будет невозможно Найдите свои необходимые файлы конфигурации.
    • Многие пакеты программного обеспечения требуют дополнительных программных ссылок или изменения суффикса имени файла динамической библиотеки после изменения каталога. можно использовать.

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/131950.html Исходная ссылка: https://javaforall.cn

svn
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose