Repository для raspberry
I’m trying to install http://www.openhantek.org/ on my PI.
I’m not even getting through the first hurdle, it appears the command «add-apt-repository» is not found.
How do I add a repository to Raspbian? I’ve tried Googling to no avail. Is it even possible to add a repository?
Re: How to add a repository
Look in the /etc/apt directory. In particular /etc/apt/sources.list and/or files in the /etc/apt/sources.list.d directory.
These are all system files. You’ll need to use sudo nano or similar to edit the files.
Re: How to add a repository
I’m trying to install http://www.openhantek.org/ on my PI.
I’m not even getting through the first hurdle, it appears the command «add-apt-repository» is not found.
How do I add a repository to Raspbian? I’ve tried Googling to no avail. Is it even possible to add a repository?
When using Ubuntu, OpenHantek can be easily installed from it’s launchpad repository. To add the repository just execute the following command:
$ sudo add-apt-repository ppa:oliverhaag/openhantek
Since you are using Raspbian, you cannot be using Ubuntu. So the rest of the sentence does not apply to you.
You will have to use the instructions which follow on that page, headed «Compiling from source»
esr/faqs/smart-questions.html
How to Report Bugs Effectively: http://www.chiark.greenend.org.uk/
Re: How to add a repository
I have also been toying with the idea to hook up my Hantek DSO 2090 with a RPi . Have you had any success. Any help will be greatly appreciated .
Rudie Lamprecht
South Africa
Re: How to add a repository
Raspberry pi comes without it installed by default, but running this quick command will make add-apt-repository available for you.
sudo apt-get install python-software-properties
Re: How to add a repository
«adding a repository» is just adding another URL to a list of web-sites (repositories) in a text file.
you can do that with any text editor.
The real question is simply where the text file is located, and what its name is.
For that google is your friend.
Re: How to add a repository
A more important question is «Is that repository compatible with Raspbian and the Raspberry Pi?»
That one probably isn’t (if it doesn’t say it is compatible, assume it is not).
The earlier comment about compiling from source is the safest option.
Re: How to add a repository
grese wrote: Raspberry pi comes without it installed by default, but running this quick command will make add-apt-repository available for you.
sudo apt-get install python-software-properties
Re: How to add a repository
Re: How to add a repository
If i can insert the software source.. Which mean i can install wine n no need that exagear? Am i right?
Re: How to add a repository
MHerman wrote: Somebody.
If i can insert the software source.. Which mean i can install wine n no need that exagear? Am i right?
Wine is compiled for machines with x86 / ppc CPU machines:
The RPi has ARM CPU, Exagear I believe use an x86 emulator to run Wine.
Re: How to add a repository
Re: How to add a repository
Seems like qemu virtual machine can virtualise a x86 environment and the package is available from the Radpbian Jessie repository:
Re: How to add a repository
I found myself needing a library from a distro that I’d just upgraded from. I had upgraded to Stretch from Jessie and I needed libjpeg8-dev to make Omxiv which is not available in Stretch. I added the old distro back to the sources list as follows.
In a terminal I entered:
sudo pico /etc/apt/sources.list
Next, edit the sources file to add Jessie by entering the following lines:
deb http://raspbian.raspberrypi.org/raspian/ jessie main contribute non-free rpi
Next write/save (Ctrl o) the file and exit (Ctrl x).
Next, run update:
sudo apt-get update
That’s it! I just did an install of libjpeg8-dev without any problems. Next I went back and opened the sources.list file again in Pico and commented out the souces that I had added by placing a # at the start of my Jessie sources so that I could add them back if needed.
Lastly, I ran update again to refresh the sources without Jessie so that no future installs could access the old distro unless I had no choice but to provide them access.
The end result was that I was finally able to run Raspicast on Stretch.
Создаём собственный Raspbian репозиторий
В Windows для установки софта как правило следует запустить файл инсталятора и следовать его инструкциям в оконном режиме, задав папку для установки и т.д
В Linux концепция установки ПО полностью отличается. Хотя Windows-подобные инсталяторы встречаются и для Linux софта, наиболее распространёнными вариантами являются:
- Установка ПО из исходных кодов
- Установка ПО из бинарных пакетов
Второй вариант является самым простым и распространённым. В этой статье мы рассмотрим структуру таких пакетов, методику их создания, а также менеджер пакетов apt-get и создание репозитория, из которого apt-get может устанавливать ПО.
В мире Linux наиболее распространёнными форматами пакетов являются rpm ( используются в дистрибутивах Red Hat, Fedora), и deb (используются в дистрибутивах Debian, Ubuntu).
В Raspbian соответственно используются deb пакеты
Установка/удаление пакета производится утилитой dpkg:
установка: dpkg -i файл_пакета.deb
частичное удаление пакета: dpkg -r файл_пакета.deb Остаются настройки пакета, пользовательские данные и т.д
полное удаление пакета: dpkg -P файл_пакета.deb
дополнительные возможности dpkg:
dpkg -L название_пакета — список файлов, установленных пакетом в файловую систему.
dpkg -S имя_файла — покажет, какой пакет установил данный файл
dpkg -s название_пакета — вывод информации об установленном пакете.
dpkg -l — список установленных пакетов
dpkg -c файл_пакета.deb — список файлов, упакованных в deb пакет
dpkg -I файл_пакета.deb — информация о пакете
Deb пакет не установится, если в системе отсутствуют важные пакеты, от которых зависит работоспособность ПО, упакованного в deb пакет. Зависимости задаются разработчиком, при упаковке файлов в deb пакет.
Автоматически установить требуемые зависимости dpkg не может, поэтому для упрощения установки ПО в Linux были придуманы менеджеры пакетов.
В Raspbian используется менеджер пакетов apt-get.
Установка пакета осуществляется командой sudo apt-get install название_пакета
Во время выполнения данной команды apt-get произведёт поиск пакета в репозиториях, указанных в конфиге /etc/apt/sources.list, а также поиск всех зависимостей данного пакета, после чего будет произведена установка.
Обратите внимание, что apt-get ведёт поиск пакетов по локально сохранённому «индексу» пакетов. Поэтому периодически необходимо обновлять этот индекс командой sudo apt-get update
Удаление пакета осуществляется командой sudo apt-get remove название_пакета, если к команде добавить ключ -purge, то будут удалены и конфигурационные файлы пакета
Чтобы обновить все пакеты, установленные через apt-get до самой свежей версии используется команда sudo apt-get upgrade. Я этой функцией не пользуюсь без крайней необходимости — как показывает опыт, если что-то нормально работает, то это лучше не трогать
Создание собственных deb пакетов
Создание deb пакета довольно обширная тема, в рамках этой статьи мы рассмотрим только основы.
Допустим вы разработчик ПО для raspberry pi, создали и скомпилировали программный комплекc, состоящий из бинарника my_raspi_soft и конфига к нему my_raspi_soft.conf
Для упрощения дистрибуции вашей программы упакуем её в deb-пакет и добавим его в собственный репозиторий, чтобы
ваши пользователи могли легко установить вашу программу командой apt-get my_raspi_soft install
Итак, создадим в удобном месте (например в домашней директории) папку (в дальнейшем я буду называть её директорией пакета), в которой будем создавать структуру пакета
и установим инструменты необходимые для создания deb пакета:
В директории пакета создаём папку DEBIAN (в ней будут храниться служебные файлы пакета, необходимые для его правильной упаковки):
и файловую структуру установки пакета — она указывает, куда копировать файлы пакета во время его установки. Допустим мы предполагаем, что во время установки пакета файл my_raspi_soft должен быть скопирован в /usr/bin, а его конфиг my_raspi_soft.conf в /etc/. Тогда файловая структура должна иметь вид:
Теперь приступим к наполнению папки DEBIAN служебными файлами.
Главным служебным файлом является файл control, в него заносятся свойства пакета в формате свойство: значение свойства.
Свойства, которые добавляются в control файл (обязательные свойства я выделил жирным шрифтом):
Package — имя пакета. Именно оно используется при установке через apt-get install. Допустимо использовать латинские буквы, цифры и дефис (Package: my-raspi-soft)
Version — версия программы и пакета в формате версия_программы-версия_пакета. (пример: 0.9-1)
Maintainer — «мэйнтейнер», создатель пакета, ответственный за его обновление и т.д Формат вида имя email (Vasya )
Architecture — архитектура процессора, для которого предназначен пакет. В случае с Raspberry Pi это будет armhf
Section — категория ПО, упакованного в пакет. Перечень категорий:
admin, base, comm, contrib, devel, doc, editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, non-free, oldlibs, otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11
Description — описание пакета
Depends — список зависимостей — пакетов, без которых не возможна работа нашей my_raspi_soft. Также можно указать требуюмую версию таких пакетов при помощи операторов >, =. Допустим в нашем проекте используется библиотека wiringPi. Тогда в config добавим строку — Depends:libwiringpi
Conflicts — список пакетов, с которыми конфликтует наша программа. Пока эти пакеты установлены в системе, установка пакета с нашей программой будет невозможна.
В итоге наш файл control будет выглядеть как-то так:
Это необходимый минимум служебных файлов для сборки deb пакета.
Какие ещё служебные файлы можно разместить в папке DEBIAN?
copyright — текст лицензии и декларация авторских прав
changelog — история изменений в специальном формате
conffiles — список файлов конфигурации (полный путь). Это нужно для того, чтобы при обновлении пакета можно было оставить старые настройки. Можно добавить сюда наш /etc/my_raspi_soft.conf
md5sums — контрольные суммы файлов пакета. можно заполнить так:
Кроме служебных файлов в папке DEBIAN можно разместить скрипты, которые будут выполняться до/после установки/удаления пакета.
preinst — скрипт с таким именем выполняется до установки пакета
postinst — скрипт, выполняющийся после установки пакета
prerm — скрипт, выполняющийся перед удалением пакета
postrm — скрипт, выполняющийся после удаление пакета
Минимальная структура пакета создана, теперь можно приступать к его упаковке в deb файл!
Переходим на 1 папку выше директории пакета и выполняем команду
Всё, пакет готов. Осталось лишь переименовать его согласно стандарту имяпакета_версия_архитектура.deb:
В завершении протестируем пакет на ошибки при помощи lintian:
Если ошибок нет, то можно закачивать пакет в репозиторий для последующего распространения
Создание репозитория deb пакетов
Нам потребуется сервер с установленным веб-сервером Apache (или любым другим).
Создаём в конфиге апача новый виртуальный хост для домена (например repo.yourserver.com), на котором будет висеть наш репозиторий. В настройках виртуального хоста обязательно разрешаем просмотр папок в DOCUMENT_ROOT (Options All Indexes)
В этом примере в качестве DOCUMENT_ROOT будет выступать директория — /home/repo/www
Создаём структуру репозитория:
Загружаем наш deb пакет my-raspi-soft_0.9-1_armhf.deb в /home/repo/www/apt/pool/main/
Создание GPG ключей
Публичный GPG ключ должен быть создан и затем скачан пользователями вашего репозитория. Если этого не сделать, то каждый раз при установке пакетов из вашего репозитория apt-get будет выводить предупреждение.
Создаём ключ командой:
Вывод этой команды будет примерно таким:
Индексация и подпись пакетов
Чтобы клиентские менеджеры пакетов apt-get могли устанавливать пакеты из нашего репозитория, необходимо произвести индексацию пакетов, которые мы загрузили в /home/repo/www/apt/pool/main/
Для этого можно использовать вот такой несложный скрипт. Он произведёт индексацию всех пакетов в /home/repo/www/apt/pool/main, создаст файл /home/repo/www/apt/pool/main/Release, который содержит MD5 и SHA хэши всех файлов пакета и подпишет файл Release ключом Release.gpg.
Запускать этот файл нужно каждый раз после загрузки нового deb пакета в наш репозиторий (GPG_NAME заменить на параметр, который соответствует вашему ключу, созданному в предыдущем шаге)
Сохраните код скрипта в /home/repo/www/apt/reindex.sh и запустите его:
В результате выполнения скрипта, структура файлов в нашем репозитории примет вид:
Raspberry Pi
Pinned
Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
This repository contains pre-compiled binaries of the current Raspberry Pi kernel and modules, userspace libraries, and bootloader/GPU firmware.
The official documentation for Raspberry Pi computers and microcontrollers
NOOBS (New Out Of Box Software) — An easy Operating System install manager for the Raspberry Pi
Source code for ARM side libraries for interfacing to Raspberry Pi GPU.
Installation scripts and binaries for the closed sourced Raspberry Pi 4 EEPROMs
1 Updated Oct 6, 2022
New libcamera based python library
1 Updated Oct 6, 2022
The official documentation for Raspberry Pi computers and microcontrollers
9 Updated Oct 6, 2022
33 Updated Oct 6, 2022
Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
50 Updated Oct 5, 2022
One click ban for phpBB 3.1.x line
0 Updated Oct 5, 2022
Firmware files for the Raspberry Pi
1 Updated Oct 5, 2022
This repository contains pre-compiled binaries of the current Raspberry Pi kernel and modules, userspace libraries, and bootloader/GPU firmware.
1 Updated Oct 5, 2022
0 Updated Oct 5, 2022
17 Updated Oct 4, 2022
People
This organization has no public members. You must be a member to see who’s a part of this organization.
Top languages
Most used topics
Footer
© 2022 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.