opkg - полезные советы

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:46

Многие из советов этой темы применимымы и к ipkg (Optware). opkg является развитием ipkg.

Для просмотра синтаксиса команды вызовите её без параметров:

Код: Выделить всё

# opkg
opkg must have one sub-command argument
usage: opkg [options...] sub-command [arguments...]
where sub-command is one of:

Package Manipulation:
        update                  Update list of available packages
        upgrade                 Upgrade installed packages
        install <pkgs>          Install package(s)
        configure <pkgs>        Configure unpacked package(s)
        remove <pkgs|regexp>    Remove package(s)
        flag <flag> <pkgs>      Flag package(s)
         <flag>=hold|noprune|user|ok|installed|unpacked (one per invocation)

Informational Commands:
        list                    List available packages
        list-installed          List installed packages
        list-upgradable         List installed and upgradable packages
        list-changed-conffiles  List user modified configuration files
        files <pkg>             List files belonging to <pkg>
        search <file|regexp>    List package providing <file>
        find <regexp>           List packages whose name or description matches <regexp>
        info [pkg|regexp]       Display all info for <pkg>
        status [pkg|regexp]     Display all status for <pkg>
        download <pkg>          Download <pkg> to current directory
        compare-versions <v1> <op> <v2>
                            compare versions using <= < > >= = << >>
        print-architecture      List installable package architectures
        depends [-A] [pkgname|pat]+
        whatdepends [-A] [pkgname|pat]+
        whatdependsrec [-A] [pkgname|pat]+
        whatrecommends[-A] [pkgname|pat]+
        whatsuggests[-A] [pkgname|pat]+
        whatprovides [-A] [pkgname|pat]+
        whatconflicts [-A] [pkgname|pat]+
        whatreplaces [-A] [pkgname|pat]+

Options:
        -A                      Query all packages not just those installed
        -V[<level>]             Set verbosity level to <level>.
        --verbosity[=<level>]   Verbosity levels:
                                        0 errors only
                                        1 normal messages (default)
                                        2 informative messages
                                        3 debug
                                        4 debug level 2
        -f <conf_file>          Use <conf_file> as the opkg configuration file
        --conf <conf_file>
        --cache <directory>     Use a package cache
        -d <dest_name>          Use <dest_name> as the the root directory for
        --dest <dest_name>      package installation, removal, upgrading.
                                <dest_name> should be a defined dest name from
                                the configuration file, (but can also be a
                                directory name in a pinch).
        -o <dir>                Use <dir> as the root directory for
        --offline-root <dir>    offline installation of packages.
        --add-arch <arch>:<prio>        Register architecture with given priority
        --add-dest <name>:<path>        Register destination with given path

Force Options:
        --force-depends         Install/remove despite failed dependencies
        --force-maintainer      Overwrite preexisting config files
        --force-reinstall       Reinstall package(s)
        --force-overwrite       Overwrite files from other package(s)
        --force-downgrade       Allow opkg to downgrade packages
        --force-space           Disable free space checks
        --force-postinstall     Run postinstall scripts even in offline mode
        --force-remove  Remove package even if prerm script fails
        --force-checksum        Don't fail on checksum mismatches
        --noaction              No action -- test only
        --download-only No action -- download only
        --nodeps                Do not follow dependencies
        --nocase                Perform case insensitive pattern matching
        --force-removal-of-dependent-packages
                                Remove package and all dependencies
        --autoremove            Remove packages that were installed
                                automatically to satisfy dependencies
        -t                      Specify tmp-dir.
        --tmp-dir               Specify tmp-dir.

 regexp could be something like 'pkgname*' '*file*' or similar
 e.g. opkg info 'libstd*' or opkg search '*libop*' or opkg remove 'libncur*'

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:47

Перед работой с opkg рекомендуем обновить список доступных пакетов. Это делается командой

Код: Выделить всё

opkg update

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:48

Для того, чтобы обновить установленные пакеты, выполните

Код: Выделить всё

opkg upgrade


Если будут обновлены демоны - перезапустите их, или перезагрузите устройство.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:49

Для того, чтобы посмотреть, какие пакеты имеются в репозитории, выполните

Код: Выделить всё

opkg list

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:50

Для того, чтобы посмотреть, какие пакеты установлены, выполните
opkg list installed

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:55

Для стандартной установки пакета нужно выполнить

Код: Выделить всё

opkg install <имя пакета>

Например,

Код: Выделить всё

opkg install mc

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:57

Для установки тестового пакета, на который у Вас есть ссылка, существует 2 возможности
1) скачайте пакет (например, с помощью wget) и выполните

Код: Выделить всё

opkg install <локальный путь к пакету>

2) если есть прямая HTTP/FTP-ссылка на пакет:

Код: Выделить всё

opkg install http://.../name.ipk

Учтите, что opkg сравнит версии пакетов в используемом репозитории с версией по ссылке и установит более новую версию.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 10:57

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

Код: Выделить всё

opkg files <имя пакета>

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 20 авг 2015, 11:00

Для удаления пакета выполните

Код: Выделить всё

opkg remove <имя пакета>

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

Код: Выделить всё

opkg --autoremove remove <имя пакета>

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1103
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 05 мар 2017, 09:45

Иногда после обновления `opkg update; opkg upgrade` некоторые пакеты перестают работать. Дело в том, что система opkg недостаточно интеллектуальна и требуется переустановка некоторых библиотек. Это можно сделать командой

Код: Выделить всё

opkg list-installed|grep -v "libc "|sed 's/ - .*$//'|grep lib|grep -v libpthread|grep -v libgcc|xargs -n 5 opkg --force-reinstall install


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 3 посетителя :: 2 зарегистрированных, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: mesb, Yandex [Bot] и 1 гость