İnşa sistemi kurulumu
- Bir GNU/Linux GNU/Linux ortamı varsayılır, değilse bakın alternatif kılavuzlar.
- Kaynak kodu indirmek için
Git
yazılımını, ve çarpraz-derleme süreci için dağıtımının varsayılanbuild tools
metapaketini yükle. - Ayrıca Git üzerinden kullanılamayan bazı besiler için kaynak kodunu çekmek için
Subversion (SVN)
veyaMercurial
yüklemen gerekebilir. - Aşağıdaki tabloda ve örneklerde gösterildiği gibi, diğer gerekli paketleri yükle.
SED
veGREP_OPTIONS
gibi ortam değişkenleri vewhich
gibi rumuzları/fonksiyonları,kaldır
(unset
)
Öngereklilikler
Bu tablo farklı GNU/Linux ve Unix gibi dağıtımlarda, her bir inşa öngerekliliği için paket adını barındırır.
- Arch Linux gibi son-seviye dağıtımlar
Global build settings
(Küresel inşa ayarları)'ndaCryptographically signed package lists
(kriptografig imzalı paket listeleri) etkin ise temel-dosyaları inşa etmede başarısız olabilirler.
Prerequisite | Debian | SUSE | Red Hat | macOS (via MacPorts) | Fedora | Arch | Gentoo |
---|---|---|---|---|---|---|---|
asciidoc | asciidoc | asciidoc | asciidoc | asciidoc | asciidoc | asciidoc | app-text/asciidoc |
GNU Bash | bash | bash | bash | bash | bash | bash | app-shells/bash |
GNU Binutils | binutils | binutils | binutils | binutils | binutils | binutils | sys-devel/binutils |
bzip2 | bzip2 | bzip2 | bzip2 | bzip2 | bzip2 | bzip2 | app-arch/bzip2 |
flex | flex | flex | flex | flex | flex | flex | sys-devel/flex |
git | git-core | git-core | git | git-core | git | git | dev-vcs/git |
GNU C++ Compiler | g++ | gcc-c++ | gcc-c++ | ? | gcc-c++ | gcc | sys-devel/gcc |
GNU C Compiler | gcc | gcc | gcc | ? | gcc | gcc | sys-devel/gcc |
GNU Time | ? | ? | ? | gtime | ? | time | sys-process/time |
getopt | util-linux | util-linux | util-linux | getopt | util-linux | util-linux | sys-apps/util-linux |
GNU awk | gawk | gawk | gawk | gawk | gawk | gawk | sys-apps/gawk |
help2man | help2man | ? | ? | help2man | help2man | help2man | sys-apps/help2man |
intltool-update | intltool | intltool | intltool | intltool | intltool | intltool | dev-util/intltool |
libelf-dev | libelf-dev | ? | ? | libelf | elfutils-libelf-devel | libelf | virtual/libelf |
libz, libz-dev | zlib1g-dev | zlib-devel | zlib-devel | zlib, libzip, libzzip | zlib-devel | zlib | sys-libs/zlib |
GNU make | make | make | make | gmake | make | make | sys-devel/make |
ncurses | libncurses5-dev | ncurses-devel | ncurses-devel | ncurses | ncurses-devel | ncurses | sys-libs/ncurses |
openssl/ssl.h | libssl-dev | libopenssl-devel | openssl-devel | openssl | openssl-devel | openssl | dev-libs/openssl |
patch | patch | patch | patch | patchutils | patch | patch | sys-devel/patch |
perl-ExtUtils-MakeMaker | perl-modules | perl-ExtUtils-MakeMaker | perl-ExtUtils-MakeMaker | p5-extutils-makemaker | perl-ExtUtils-MakeMaker | perl-extutils-makemaker | virtual/perl-ExtUtils-MakeMaker |
perl-Thread-Queue | ? | ? | ? | ? | perl-Thread-Queue | ? | virtual/perl-Thread-Queue |
python2-dev | python2-dev | python-devel | ? | python27 | ? | python2 | dev-lang/python:2 |
? | python3-dev | ? | ? | python310 | ? | ? | ? |
unzip | unzip | unzip | unzip | unzip | unzip | unzip | app-arch/unzip |
GNU Wget | wget | wget | wget | wget | wget | wget | net-misc/wget |
xgettext | gettext | gettext-tools | gettext | gettext | gettext | gettext | sys-devel/gettext |
xsltproc | xsltproc | libxslt-tools | ? | libxslt | libxslt | libxslt | dev-libs/libxslt |
zlib, zlib-static | zlib1g-dev | zlib-devel-static | zlib-devel | zlib | zlib-devel,zlib-static | zlib | sys-libs/zlib (USE=static-libs) |
Yukarıdaki önermenin güncel olmayabileceğini dikkate alın. Örn. python3 güncel olarak OpenWrt master, 22.03 ve 21.02 dallarında varsayılan iken python2.7 ömrünü tükettiğinden kaldırıldı.
Package öngereklilikleri
Ne yazık ki make config
ile tüm bağlılıklar kontrol edilmez, özellikle de paketler için.
Sisteminizde belirli bir kütüphaneye ihtiyacınız olduğundan derleme hatalarıyla karşılaşabilirsiniz, ve tek yol kayıp kütüphaneyi derleme hata kaydından aramak ve dağıtımın için hangi paketin sahip olduğunu bulmaktır.
Takip eden tablo böyle bağlılıkların kısmi bir listesidir:
Package | Prerequisite | Debian | SUSE | Red Hat | macOS (via MacPorts) | Fedora | Arch | Gentoo |
---|---|---|---|---|---|---|---|---|
boost | bjam / boost-jam | libboost-dev | boost-jam boost-build | boost-jam | boost | dev-util/boost-build | ||
intltool | [Perl] XML::Parser | libxml-parser-perl | perl-XML-Parser | p5.28-xml-parser p5.30-xml-parser | perl-XML-Parser | intltool | dev-perl/XML-Parser | |
libftdi (aka: libftdi0) | libusb-config | libusb-dev | libusb | libusb-devel | libusb | dev-libs/libusb-compat | ||
lilo | as86,ld86 | bin86 | binutils | dev86 | bin86 | sys-devel/bin86 | ||
lilo | bcc1 | bcc | dev86 | aur/bcc | sys-devel/dev86 | |||
lilo | uudecode | sharutils | sharutils | sharutils | sharutils | app-arch/sharutils | ||
luajit | x86 g++ libs on amd64 hosts | gcc-multilib | ||||||
classpath (aka: gnu-classpath) 1 | javac, gcj | openjdk-7-jdk | openjdk7-zulu | java-1.8.0-openjdk-devel | jdk7-openjdk | dev-java/oracle-jdk-bin, sys-devel/gcc[gcj], and one (or both) of dev-java/icedtea-bin:7 and dev-java/icedtea:7 | ||
mac80211 | b43-fwcutter1 (Broadcom/BCM) | b43-fwcutter | b43-fwcutter | net-wireless/b43-fwcutter | ||||
jamvm1 | zip | zip | zip | app-arch/zip |
GNU/Linux dağıtımları:
Dağıtıma özgü komutlar.
Alpine
apk add asciidoc bash bc binutils bzip2 cdrkit coreutils diffutils \ findutils flex g++ gawk gcc gettext git grep intltool libxslt \ linux-headers make ncurses-dev openssl-dev patch perl python2-dev \ python3-dev rsync tar unzip util-linux wget zlib-dev
Arch / Manjaro
Arch users may install the openwrt-devel meta-package from the AUR or alternatively, manually install the build dependencies as follows:
# Essential prerequisites pacman -S --needed base-devel autoconf automake bash binutils bison \ bzip2 fakeroot file findutils flex gawk gcc gettext git grep groff \ gzip libelf libtool libxslt m4 make ncurses openssl patch pkgconf \ python rsync sed texinfo time unzip util-linux wget which zlib # Optional prerequisites, depend on the package selection pacman -S --needed asciidoc help2man intltool perl-extutils-makemaker
CentOS / Fedora
sudo dnf --setopt install_weak_deps=False --skip-broken install \ bash-completion bzip2 gcc gcc-c++ git make ncurses-devel patch \ rsync tar unzip wget which diffutils python2 python3 perl-base \ perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin \ perl-Thread-Queue
Debian / Ubuntu
Artık python 2.7 gereksinimi olmayan Ubuntu 22.04 için OpenWrt master, 22.03 ve 21.02 dalları için modernize küme. Ubuntu22.04'te Python3 varsayılan olarak yüklüdür.
sudo apt update sudo apt install build-essential gawk gcc-multilib flex git gettext libncurses5-dev libssl-dev python3-distutils zlib1g-dev
Eski öneri:
sudo apt update sudo apt install build-essential ccache ecj fastjar file g++ gawk \ gettext git java-propose-classpath libelf-dev libncurses5-dev \ libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \ python3-distutils python3-setuptools python3-dev rsync subversion \ swig time xsltproc zlib1g-dev
Gentoo
echo \ app-arch/{bzip2,sharutils,unzip,zip} sys-process/time \ app-text/asciidoc \ dev-libs/{libusb-compat,libxslt,openssl} dev-util/intltool \ dev-vcs/{git,mercurial} net-misc/{rsync,wget} \ sys-apps/util-linux sys-devel/{bc,bin86,dev86} \ sys-libs/{ncurses,zlib} virtual/perl-ExtUtils-MakeMaker \ | sed "s/\s/\n/g" \ | sort \ | sudo tee /etc/portage/sets/openwrt-prerequisites \ && sudo emerge -DuvNa "@openwrt-prerequisites"
openSUSE
sudo zypper install --no-recommends asciidoc bash bc binutils bzip2 \ fastjar flex gawk gcc gcc-c++ gettext-tools git git-core intltool \ libopenssl-devel libxslt-tools make mercurial ncurses-devel patch \ perl-ExtUtils-MakeMaker python-devel rsync sdcc unzip util-linux \ wget zlib-devel
Void
sudo xbps-install -Su asciidoc bash bc binutils bzip2 cdrtools \ coreutils diffutils findutils flex gawk gcc gettext git grep intltool \ libxslt linux-headers make ncurses-devel openssl-devel patch perl \ pkg-config python-devel python3-devel rsync tar unzip util-linux \ wget zlib-devel
macOS dağıtımları:
macOS dağıtım-özgül talimatlar. macOS çekirdeğinde Darvin unix kullanır. Xcode/CLT aletzinciri, & 3.taraf paket yönetim aracı çeşitli inşa aletlerinin yüklenmesine olanak tanır.
More info: buildroot.exigence.macosx.
macOS / Darwin (x86_64) + MacPorts
sudo port install libiconv gettext-runtime coreutils findutils gwhich \ gawk zlib pcre bzip2 ncurses grep getopt gettext-tools-libs gettext \ diffutils sharutils util-linux libxslt libxml2 help2man readline gtime \ gnutar unzip zip lzma xz libelf fastjar libusb libftdi0 expat sqlite3 \ openssl3 openssl kerberos5 dbus lz4 libunistring nettle icu gnutls \ p11-kit wget quilt subversion gmake pkgconfig libzip cdrtools ccache \ curl xxhashlib rsync libidn perl5 p5.28-xml-parser p5.30-xml-parser \ p5-extutils-makemaker p5-data-dumper boost-jam boost boost-build bash \ bash-completion binutils m4 flex intltool patchutils swig git-extras \ git openjdk17 openjdk7-zulu luajit libtool glib2 file python27 \ python310 libzzip mercurial asciidoc sdcc gnu-classpath
Unix dağıtımları:
Dağıtım-özgül talimatlar.
FreeBSD
...