Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Gemeinsame Nutzung des RPM-Verpackungsprozesses unter Linux

Gemeinsame Nutzung des RPM-Verpackungsprozesses unter Linux

Feb 08, 2018 pm 02:54 PM
linux 分享 打包

Dieser Artikel teilt Ihnen hauptsächlich den RPM-Paketierungsprozess unter Linux mit und hofft, allen zu helfen.

Vorbereitung vor dem Start

Installieren Sie das rpmbuild-Paket

  • yum -y install rpm-build

    Generieren Sie zugehörige Verzeichnisse

Um rpm-bezogene Verzeichnisse zu generieren, können Sie diese manuell oder über den Befehl rpmbuild erstellen. Beispiel:

[root@yang data]# rpmbuild zabbix_agentd_ops.spec 
error: File /root/rpmbuild/SOURCES/zabbix-3.0.3.tar.gz: No such file or directory

有报错,无需理会,可以看到rpmbuild目录已经创建完成

[root@yang ~]# tree rpmbuild/
rpmbuild/
├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
Nach dem Login kopieren

SPEC-Datei schreiben

SPEC-Schlüsselwort

Name: Der Name des Softwarepakets, auf den später mit %{name}

Zusammenfassung: Zusammenfassung des Inhalts des Softwarepakets

Version: Die tatsächliche Versionsnummer der Software, zum Beispiel: 1.0.1 usw., auf die später mit %{version} verwiesen werden kann

Release: Release-Seriennummer, zum Beispiel: 1linuxing usw., geben Sie an, wie oft gepackt werden soll, Sie können %{release} verwenden, um später darauf zu verweisen

Gruppe: Softwaregruppierung, it Es wird empfohlen, die Standardgruppierung zu verwenden

Lizenz: Software-Autorisierungsmethode, normalerweise GPL

Quelle: Quellcodepaket, Sie können mehrere Quellen wie Quelle1, Quelle2 usw. mitbringen, und Sie können auch Verwenden Sie später %{source1} und %{source2}, um auf

BuildRoot zu verweisen: Dies ist beim Installieren oder Kompilieren. Das verwendete „virtuelle Verzeichnis“ ist unter Berücksichtigung der Mehrbenutzerumgebung im Allgemeinen definiert als: %{tmppath} /{name}-%{version}-%{release}-root oder %{tmppath}/%{name}-% {version}-%{release}-buildroot-%%__id_u} -n} Dies ist sehr wichtig, da beim Generieren von RPM die Software beim Ausführen von make install im oben genannten Pfad installiert wird. Zu diesem Zeitpunkt verlassen wir uns auch auf das „virtuelle Verzeichnis“ als „Stammverzeichnis“ für Vorgänge. Es kann später mit der Methode $RPM_BUILD_ROOT referenziert werden.

URL: Homepage der Software

Anbieter: Informationen zum Herausgeber oder Verpackungsunternehmen, z. B. RedFlag Co, Ltd

Vertrieb: Vertriebsidentifikation

Patch : Patch-Quellcode, Sie können Patch1, Patch2 usw. verwenden, um mehrere Patches zu identifizieren. Verwenden Sie %patch0 oder %{patch0}, um auf

Präfix: %{_prefix} zu verweisen. Dies dient hauptsächlich dazu, das Problem zu lösen, dass wann Bei der zukünftigen Installation von RPM-Paketen wird es nicht unbedingt erforderlich sein, die Software in das in RPM gepackte Verzeichnis zu installieren. Auf diese Weise muss die Kennung hier definiert und beim Schreiben des %install-Skripts referenziert werden, um die Funktion der Neuangabe des Speicherorts während der RPM-Installation zu realisieren

Präfix: %{sysconfdir} Dieser Grund ist der gleiche wie oben , aber da %{prefix} auf /usr verweist und für andere Dateien, wie z. B. Konfigurationsdateien unter /etc, müssen Sie die Markierung %{_sysconfdir} verwenden.

Build Arch: bezieht sich auf die Zielprozessorarchitektur Für die Kompilierung wird die noarch-Markierung nicht angegeben, aber normalerweise wird der Inhalt in /usr/lib/rpm/marcros als Standardwert verwendet.

Erforderlich: Der Name des Softwarepakets, von dem das RPM-Paket abhängt. Sie können >= oder <= verwenden, um größer oder kleiner als eine bestimmte Version anzugeben, zum Beispiel: libpng-devel >= 1.0.20 zlib ※ Beide Seiten des „>=“-Zeichens müssen durch getrennt werden Leerzeichen und verschiedene Softwarenamen werden ebenfalls durch Leerzeichen getrennt, und PreReq, Requires(pre), Requires(post), Requires(preun), Requires(postun), BuildRequires usw. werden alle für Abhängigkeiten in unterschiedlichen Phasen angegeben

Bietet: Zeigt einige spezifische Funktionen dieser Software an, damit andere RPM sie identifizieren können

Packager: Informationen zum Packager

%description Detaillierte Beschreibung der Software

SPEC-Skript body

%prep Vorverarbeitungsskript

%setup - n %{name}-%{version}** Entpacken Sie das Quellcodepaket und legen Sie es ab, normalerweise aus dem Paket in /usr/src/ asianux/SOURCES nach /usr/src/asianux/BUILD/%{name}-% {version}. Im Allgemeinen reicht %setup -c aus, es gibt jedoch zwei Situationen: Zum einen müssen mehrere Quellcodepakete gleichzeitig kompiliert werden, zum anderen stimmt der Name des Quellcode-TAR-Pakets nicht mit dem dekomprimierten Verzeichnis überein In diesem Fall müssen Sie den Parameter -n verwenden, um „Für einen Moment“ anzugeben.

%patch Beim Patchen werden die Patches normalerweise in das Quellpaket tar.gz aufgenommen oder im SOURCES-Verzeichnis abgelegt. Die allgemeinen Parameter sind:

  • %patch -p1 Verwenden Sie den zuvor definierten Patch -p1 ignoriert die erste Ebene des Patches

  • %Patch2 -p1 -b xxx.patch wendet den angegebenen Patch an, -b bezieht sich auf das Generieren einer Sicherungsdatei

Ergänzung

  • %setup fügt nicht hinzu Bei jeder Option wird nur das Paket geöffnet.

  • %setup -n newdir Entpacken Sie das Softwarepaket im Verzeichnis newdir.

  • %setup -c generiert das Verzeichnis vor der Dekomprimierung.

  • %setup -b num Dekomprimiert die num-te Quelldatei.

  • %setup -T verwendet nicht den Standard-Dekomprimierungsvorgang.

  • %setup -T -b 0 Dekomprimiert die 0. Quellcodedatei.

  • %setup -c -n newdir gibt den Verzeichnisnamen newdir an und generiert das RPM-Paket in diesem Verzeichnis.

  • %patch ist die einfachste Patch-Methode, bei der die Patch-Ebene automatisch angegeben wird.

  • %patch 0 verwendet die 0. Patchdatei, äquivalent zu %patch ?p 0.

  • %patch -s zeigt keine Patch-Informationen an.

  • %patch -T löscht alle beim Patchen generierten Ausgabedateien.

%configure Dies ist kein Schlüsselwort, sondern ein von rpm definierter Standard-Makrobefehl. Dies bedeutet, dass die Konfiguration des Quellcodes im Verzeichnis /usr/src/asianux/BUILD/%{name}-%{version} ausgeführt wird. Dabei werden die in /usr/lib/rpm/marcros definierten Parameter verwendet referenziert werden. Eine andere nicht standardmäßige Schreibweise besteht darin, auf die Parameteranpassung im Quellcode zu verweisen, zum Beispiel:

引用CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix}
Nach dem Login kopieren
%build, um mit der Erstellung des Pakets zu beginnen, in /usr/src/asianux/BUILD/% {name} – Führen Sie make work im %{version}-Verzeichnis

aus

%install 开始把软件安装到虚拟的根目录中.在/usr/src/asianux/BUILD/%{name}-%{version}目录中进行make install的操作。这个很重要,因为如果这里的路径不对的话,则下面%file中寻找文件的时候就会失败。 常见内容有:

  • %makeinstall 这不是关键字,而是rpm定义的标准宏命令。也可以使用非标准写法:make DESTDIR=$RPM_BUILD_ROOT install或引用make prefix=$RPM_BUILD_ROOT install

  • 需要说明的是,这里的%install主要就是为了后面的%file服务的。所以,还可以使用常规的系统命令:引用install -d $RPM_BUILD_ROOT/和cp -a * $RPM_BUILD_ROOT/

%clean        清理临时文件

%pre           rpm安装前执行的脚本

%post        rpm安装后执行的脚本

%preun         rpm卸载前执行的脚本

%postun    rpm卸载后执行的脚本

%files 定义那些文件或目录会放入rpm中

%defattr (-,root,root)** 指定包装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755

%changelog     变更日志

实例:

%define zabbix_user zabbix                    #自定义宏,名字为zabbix_user值为zabbix,%{zabbix_user}引用
Name:    zabbix                                #软件包的名字,后面可用%{name}引用
Version:    3.0.3                            #软件的实际版本号,可使用%{version}引用
Release:    1%{?dist}                        #发布序列号,标明第几次打包    
Summary:    zabbix_agentd                    #软件包内容概要

Group:        zabbix                            #软件包分组
License:    GPL                                #授权许可方式
URL:        www.yang.com                    #软件的主页
Source0:    zabbix-3.0.3.tar.gz                #源代码包,可以有Source0,Source1等源

BuildRequires:        gcc, gcc-c++            #制作rpm包时,所依赖的基本库
Requires:    gcc, gcc-c++, chkconfig            #安装rpm包时,所依赖的软件包

%description                                #定义rpm包的描述信息
Zabbix agentd 3.0.3

%pre                                        #rpm包安装前执行的脚本
grep zabbix /etc/passwd > /dev/null
if [ $? != 0 ] 
then useradd zabbix -M -s /sbin/nologin
fi
[ -d /etc/zabbix   ]||rm -rf /etc/zabbix*


%post                                        #rpm包安装后执行的脚本
sed -i "/^ServerActive=/c\ServerActive=172.30.17.35" /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/^Server=/c\Server=172.30.17.35" /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/Timeout=3/c\Timeout=30" /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/HostMetadata=/c\HostMetadata=PostgreSQL" /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/^Hostname=/c\Hostname=PostgreSQL" /etc/zabbix/etc/zabbix_agentd.conf
echo "UnsafeUserParameters=1" >>/etc/zabbix/etc/zabbix_agentd.conf
echo "EnableRemoteCommands=1" >>/etc/zabbix/etc/zabbix_agentd.conf
echo "Include=/etc/zabbix/etc/zabbix_agentd.conf.d/*.conf" >>/etc/zabbix/etc/zabbix_agentd.conf
chkconfig zabbix_agentd on

%preun                                        #rpm卸载前执行的脚本
systemctl stop zabbix_agentd
%postun                                        #rpm卸载后执行的脚本
userdel  zabbix
rm -rf /etc/zabbix*
%prep                                        #这个宏开始
%setup -q                                    #解压并cd到相关目录


%build                                        #定义编译软件包时的操作
./configure --prefix=/etc/%{name}-%{version}   --enable-agent
make -j16 %{?_smp_mflags}

%install                                    #定义安装软件包,使用默认值即可
test -L %{buildroot}/etc/%{name} && rm -f %{buildroot}/etc/%{name}
install -d %{buildroot}/etc/profile.d
install -d %{buildroot}/etc/init.d
make install DESTDIR=%{buildroot}
echo 'export PATH=/etc/zabbix/bin:/etc/zabbix/sbin:$PATH' > %{buildroot}/etc/profile.d/%{name}.sh
ln -sf /etc/%{name}-%{version}             %{buildroot}/etc/%{name}
cp %{_buildrootdir}/postgresql.conf         %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/postgresql.conf
cp %{_buildrootdir}/tcp_connections.sh      %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/tcp_connections.sh
cp %{_buildrootdir}/iostat-collect.sh          %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-collect.sh 
cp %{_buildrootdir}/iostat-parse.sh          %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-parse.sh
cp %{_buildrootdir}/iostat-zabbix.conf      %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-zabbix.conf 
cp %{_buildrootdir}/zabbix_agentd         %{buildroot}/etc/init.d/zabbix_agentd

%files                                        #定义rpm包安装时创建的相关目录及文件。在该选项中%defattr (-,root,root)一定要注意。它是指定安装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755。
/etc/%{name}
/etc/%{name}-%{version}/*
/etc/init.d/zabbix_agentd
/etc/profile.d/%{name}.sh

%changelog                                    #主要用于软件的变更日志。该选项可有可无
%clean 
rm -rf %{buildroot}                         #清理临时文件
Nach dem Login kopieren

RPM包制作拓展

如果想为zabbix增加启动控制脚本或一些其他的配置文件,可以将其放在SOURCE下,然后复制过去

  • 将启动脚本放在SOURCE目录

      [root@yang ~/rpmbuild/SOURCES]# ll
      total 15116
      -rwxr-xr-x 1 root root      362 Aug  1 12:03 hostmonitor.conf
      -rwxr-xr-x 1 root root      505 Aug  1 12:03 iostat-collect.sh
      -rwxr-xr-x 1 root root      953 Aug  1 12:03 iostat-parse.sh
      -rw-r--r-- 1 root root      772 Aug  1 12:03 iostat-zabbix.conf
      -rwxr-xr-x 1 root root      813 Aug  1 12:03 nginx_monitor.sh
      -rw-r--r-- 1 root root    14868 Aug  1 12:03 postgresql.conf
      -rw-r--r-- 1 root root       77 Aug  1 12:03 process.discovery
      -rw-r--r-- 1 root root      552 Aug  1 12:03 redis_check.conf
      -rw-r--r-- 1 root root      356 Aug  1 12:03 redis_cluster_check.py
      -rw-r--r-- 1 root root      363 Aug  1 12:03 redis_multiport_check.py
      -rwxr-xr-x 1 root root      783 Aug  1 12:03 tcp_connections.sh
      -rw-r--r-- 1 root root      852 Aug  1 12:03 userparameter_nginx.conf
      -rw-r--r-- 1 root root      172 Aug  1 12:03 userparameter_process.conf
      -rw-r--r-- 1 root root 15407273 Jul 20 10:53 zabbix-3.0.3.tar.gz
      -rwxr-xr-x 1 root root     2182 Aug  1 12:03 zabbix_agentd
Nach dem Login kopieren
  • 编辑 SPEC文件

    • Source0下增加如下:

        Source0:        zabbix-3.0.3.tar.gz
        Source1:        zabbix_agentd
        Source2:        nginx_monitor.sh
        Source3:        userparameter_nginx.conf
        Source4:        hostmonitor.conf
        Source5:        process.discovery
        Source6:        userparameter_process.conf
        Source7:        redis_check.conf
        Source8:        redis_cluster_check.py
        Source9:        redis_multiport_check.py
        Source10:       tcp_connections.sh
        Source11:       iostat-collect.sh
        Source12:       iostat-parse.sh
        Source13:       iostat-zabbix.conf
Nach dem Login kopieren
  • 安装区域增加如下行:

        make install DESTDIR=%{buildroot}
        install -p -D -m 0755 %{SOURCE1}        %{buildroot}/etc/init.d/zabbix_agentd
        install -p -D         %{SOURCE2}        %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/nginx_monitor.sh
        install -p -D         %{SOURCE3}        %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_nginx.conf
        install -p -D         %{SOURCE4}        %{buildroot}/etc/nginx/conf.d/hostmonitor.conf
        install -p -D         %{SOURCE5}        %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/process.discovery
        install -p -D         %{SOURCE6}        %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_process.conf
        install -p -D         %{SOURCE7}        %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_check.conf
        install -p -D         %{SOURCE8}        %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_cluster_check.py
        install -p -D         %{SOURCE9}        %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_multiport_check.py
        install -p -D         %{SOURCE10}       %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/tcp_connections.sh
        install -p -D         %{SOURCE11}       %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-collect.sh
        install -p -D         %{SOURCE12}       %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-parse.sh
        install -p -D         %{SOURCE13}       %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-zabbix.conf
Nach dem Login kopieren
  • %file区域增加如下行:

        %files
        %defattr (-,root,root,0755)
        /etc/%{name}
        /etc/%{name}-%{version}/*
        /etc/profile.d/%{name}.sh
        /etc/nginx/conf.d/hostmonitor.conf
        %attr(0755,root,root) /etc/rc.d/init.d/zabbix_agentd
Nach dem Login kopieren

以下为完整的SPEC文件:

Name:    zabbix    
Version:    3.0.3        
Release:    1%{?dist}
Summary:    zabbix_agentd

Group:        zabbix
License:    GPL
URL:        www.yang.com
Source0:    zabbix-3.0.3.tar.gz
Source1:    zabbix_agentd
Source2:    nginx_monitor.sh
Source3:    userparameter_nginx.conf
Source4:    hostmonitor.conf
Source5:    process.discovery
Source6:    userparameter_process.conf
Source7:    redis_check.conf
Source8:    redis_cluster_check.py
Source9:    redis_multiport_check.py
Source10:    tcp_connections.sh
Source11:    iostat-collect.sh
Source12:    iostat-parse.sh
Source13:    iostat-zabbix.conf

BuildRequires:        gcc, gcc-c++
Requires:    gcc, gcc-c++, chkconfig

%description
Zabbix agentd 3.0.3

%pre
grep zabbix /etc/passwd > /dev/null
if [ $? != 0 ] 
then useradd zabbix -M -s /sbin/nologin
fi
[ -d /etc/zabbix   ]||rm -rf /etc/zabbix
[ -d /etc/zabbix   ]||rm -rf /etc/zabbix-3.0.3


%post
sed -i "/^ServerActive=/c\ServerActive=172.30.17." /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/^Server=/c\Server=172.30.17." /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/Timeout=3/c\Timeout=30" /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/HostMetadata=/c\HostMetadata=OPS-TMP" /etc/zabbix/etc/zabbix_agentd.conf
sed -i "/^Hostname=/c\Hostname=OPS-TMP" /etc/zabbix/etc/zabbix_agentd.conf
echo "UnsafeUserParameters=1" >>/etc/zabbix/etc/zabbix_agentd.conf
echo "EnableRemoteCommands=1" >>/etc/zabbix/etc/zabbix_agentd.conf
echo "Include=/etc/zabbix/etc/zabbix_agentd.conf.d/*.conf" >>/etc/zabbix/etc/zabbix_agentd.conf
chkconfig zabbix_agentd on

%preun
systemctl stop zabbix_agentd
%postun
userdel  zabbix
rm -rf /etc/zabbix*
%prep
%setup -q


%build
./configure --prefix=/etc/%{name}-%{version}   --enable-agent
make -j16 %{?_smp_mflags}

%install
test -L %{buildroot}/etc/%{name} && rm -f %{buildroot}/etc/%{name}
install -d %{buildroot}/etc/profile.d
make install DESTDIR=%{buildroot}
install -p -D -m 0755 %{SOURCE1}     %{buildroot}/etc/init.d/zabbix_agentd
install -p -D         %{SOURCE2}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/nginx_monitor.sh
install -p -D         %{SOURCE3}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_nginx.conf
install -p -D         %{SOURCE4}     %{buildroot}/etc/nginx/conf.d/hostmonitor.conf
install -p -D         %{SOURCE5}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/process.discovery
install -p -D         %{SOURCE6}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_process.conf
install -p -D         %{SOURCE7}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_check.conf
install -p -D         %{SOURCE8}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_cluster_check.py
install -p -D         %{SOURCE9}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_multiport_check.py
install -p -D         %{SOURCE10}     %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/tcp_connections.sh
install -p -D         %{SOURCE11}    %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-collect.sh
install -p -D         %{SOURCE12}    %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-parse.sh
install -p -D            %{SOURCE13}       %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-zabbix.conf

echo 'export PATH=/etc/zabbix/bin:/etc/zabbix/sbin:$PATH' > %{buildroot}/etc/profile.d/%{name}.sh
ln -sf /etc/%{name}-%{version}             %{buildroot}/etc/%{name}

%files
%defattr (-,root,root,0755)
/etc/%{name}
/etc/%{name}-%{version}/*
/etc/profile.d/%{name}.sh
/etc/nginx/conf.d/hostmonitor.conf
%attr(0755,root,root) /etc/rc.d/init.d/zabbix_agentd
%changelog
%clean 
rm -rf %{buildroot}
Nach dem Login kopieren

相关推荐:

RPM 进行安装、卸载及管理的操作实例

Linux命令之rpm安装命令的实例代码详解

关于Linux中安装rpm包时报错的解决办法 详解

Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung des RPM-Verpackungsprozesses unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Android TV Box erhält inoffizielles Ubuntu 24.04-Upgrade Android TV Box erhält inoffizielles Ubuntu 24.04-Upgrade Sep 05, 2024 am 06:33 AM

Für viele Benutzer klingt das Hacken einer Android-TV-Box entmutigend. Allerdings stand Entwickler Murray R. Van Luyn während der Broadcom-Chipknappheit vor der Herausforderung, nach geeigneten Alternativen zum Raspberry Pi zu suchen. Seine Zusammenarbeit mit der Armbia

Deepseek Web Version Eingang Deepseek Offizielle Website Eingang Deepseek Web Version Eingang Deepseek Offizielle Website Eingang Feb 19, 2025 pm 04:54 PM

Deepseek ist ein leistungsstarkes Intelligent -Such- und Analyse -Tool, das zwei Zugriffsmethoden bietet: Webversion und offizielle Website. Die Webversion ist bequem und effizient und kann ohne Installation verwendet werden. Unabhängig davon, ob Einzelpersonen oder Unternehmensnutzer, können sie massive Daten über Deepseek problemlos erhalten und analysieren, um die Arbeitseffizienz zu verbessern, die Entscheidungsfindung zu unterstützen und Innovationen zu fördern.

So installieren Sie Deepseek So installieren Sie Deepseek Feb 19, 2025 pm 05:48 PM

Es gibt viele Möglichkeiten, Deepseek zu installieren, einschließlich: kompilieren Sie von Quelle (für erfahrene Entwickler) mit vorberechtigten Paketen (für Windows -Benutzer) mit Docker -Containern (für bequem am besten, um die Kompatibilität nicht zu sorgen), unabhängig von der Methode, die Sie auswählen, bitte lesen Die offiziellen Dokumente vorbereiten sie sorgfältig und bereiten sie voll und ganz vor, um unnötige Schwierigkeiten zu vermeiden.

BitPie Bitpie-Wallet-App-Download-Adresse BitPie Bitpie-Wallet-App-Download-Adresse Sep 10, 2024 pm 12:10 PM

Wie lade ich die BitPie Bitpie Wallet-App herunter? Die Schritte sind wie folgt: Suchen Sie im AppStore (Apple-Geräte) oder Google Play Store (Android-Geräte) nach „BitPie Bitpie Wallet“. Klicken Sie auf die Schaltfläche „Get“ oder „Install“, um die App herunterzuladen. Besuchen Sie für die Computerversion die offizielle BitPie-Wallet-Website und laden Sie das entsprechende Softwarepaket herunter.

Bitget Offizielle Website -Installation (2025 Anfängerhandbuch) Bitget Offizielle Website -Installation (2025 Anfängerhandbuch) Feb 21, 2025 pm 08:42 PM

Bitget ist eine Kryptowährungsbörse, die eine Vielzahl von Handelsdienstleistungen anbietet, darunter Spot -Handel, Vertragshandel und Derivate. Der 2018 gegründete Austausch hat seinen Hauptsitz in Singapur und verpflichtet sich, den Benutzern eine sichere und zuverlässige Handelsplattform zu bieten. Bitget bietet eine Vielzahl von Handelspaaren, einschließlich BTC/USDT, ETH/USDT und XRP/USDT. Darüber hinaus hat der Austausch einen Ruf für Sicherheit und Liquidität und bietet eine Vielzahl von Funktionen wie Premium -Bestellarten, gehebelter Handel und Kundenunterstützung rund um die Uhr.

Installation der Quellcode-Kompilierung von Zabbix 3.4 Installation der Quellcode-Kompilierung von Zabbix 3.4 Sep 04, 2024 am 07:32 AM

1. Installationsumgebung (virtuelle Hyper-V-Maschine): $hostnamectlStatichostname:localhost.localdomainIconname:computer-vmChassis:vmMachineID:renwoles1d8743989a40cb81db696400BootID:renwoles272f4aa59935dcdd0d456501Virtualisierung:microsoftOperatingSystem:CentOS 7(Kern)CPEOSName:cpe:

Ouyi OKX Installationspaket ist direkt enthalten Ouyi OKX Installationspaket ist direkt enthalten Feb 21, 2025 pm 08:00 PM

Ouyi Okx, die weltweit führende digitale Asset Exchange, hat jetzt ein offizielles Installationspaket gestartet, um ein sicheres und bequemes Handelserlebnis zu bieten. Auf das OKX -Installationspaket von Ouyi muss nicht über einen Browser zugegriffen werden. Der Installationsprozess ist einfach und einfach zu verstehen.

Holen Sie sich das Installationspaket Gate.io kostenlos Holen Sie sich das Installationspaket Gate.io kostenlos Feb 21, 2025 pm 08:21 PM

Gate.io ist ein beliebter Kryptowährungsaustausch, den Benutzer verwenden können, indem sie sein Installationspaket herunterladen und auf ihren Geräten installieren. Die Schritte zum Abholen des Installationspakets sind wie folgt: Besuchen Sie die offizielle Website von Gate.io, klicken Sie auf "Download", wählen Sie das entsprechende Betriebssystem (Windows, Mac oder Linux) und laden Sie das Installationspaket auf Ihren Computer herunter. Es wird empfohlen, die Antiviren -Software oder -Firewall während der Installation vorübergehend zu deaktivieren, um eine reibungslose Installation zu gewährleisten. Nach Abschluss muss der Benutzer ein Gate.io -Konto erstellen, um es zu verwenden.

See all articles