Raspberry Pi Gitea – Installing Gitea on the Pi(树莓派创建gitea版本Git服务器)

本教程详细介绍了如何在树莓派上安装和配置Gitea,一个自我托管的Git服务,提供类似GitHub的界面。教程包括更新系统、安装必要的软件包、设置MySQL数据库、下载Gitea二进制文件、创建服务文件以及完成Gitea的初始配置。

 by Gus  Jun 21, 2018  Updated Jul 28, 2018  Beginner

In this Raspberry Pi Gitea tutorial, we will be showing you all the steps to getting Gitea up and running on the Raspberry Pi.

Gitea, if you have never heard of it, is a self-hosted Git service, offering an interface much like Github for those who want to self-host there Git repositories but still want to be able to view them through a robust graphical interface. This graphical interface is perfect if you find pusing to a Git server via the command line a bit daunting.

Gitea is written in Go with the intention of having minimal requirements meaning it is designed to even run fine on the Raspberry Pi’s limited resources. This design helps make it a much better choice than the more demanding Gitlab.

The tutorial below will take you through all the steps to getting this set up. You can also find the tutorial in our Raspberry Pi project books with dozens of other cool projects and guides.

 Equipment List

Below are all the pieces of equipment that I made use of for this Raspberry Pi Gitea tutorial.

Recommended:

 Raspberry Pi 2 or 3

 Micro SD Card

 Ethernet Cord (Recommended) or WiFi dongle (Pi 3 has Wifi inbuilt)

Optional:

 Raspberry Pi Case

 Getting prepared for Gitea on the Pi

1. Before we begin setting up Gitea on the Raspberry Pi we need first to make sure that Raspbian is entirely up to date.

We can do this by running the following two commands on our Raspberry Pi.

sudo apt-get update
sudo apt-get upgrade

2. Now that Raspbian is entirely up to date we can now install the packages that we require to get started with Gitea.

In this case, we need to install Git and the MYSQL server. Use the following command to install these.

sudo apt-get install  git mysql-server -y

3. Let’s now create a user that we will be running Gitea under. This command will also create a folder for the user.

We use –disabled-login as we don’t want people logging into the Raspberry Pi as this user and use –gecos to allow us to set a name for the user, in this case, “Gitea“.

sudo adduser --disabled-login --gecos 'Gitea' git

 Setting up MYSQL for Gitea

1. Before we go ahead and create an MYSQL user and database, we need first to improve the security of our MYSQL server.

To do this, we will by making use of the following command on our Raspberry Pi, this we will run the mysql_secure_installation tool.

sudo mysql_secure_installation

2. This tool will ask you several things. We will quickly run through these options over the next few steps.

The first of these is “Enter current password for root (enter for none) :“, to this just press Enter as there is currently no password for the root MYSQL user.

3. Next, you will be asked if you want to “Set root password?“, To this type in Y and press Enter. Setting a password is essential to ensure your data remains secure.

You will then be asked to enter a new password, make sure you set this to something secure and not easily guessable.

4. Now you will be asked if you want to “Remove anonymous users?“, to this type Y and press Enter.

Removing anonymous users is essential for data security as it prevents the ability for people to log into the MYSQL server without having a user account created for them.

5. The next option is whether to “Disallow root login remotely?“, to this type Y and press Enter.

Disallowing root login remotely makes it more difficult for someone to compromise your database. To perform a root login, you will have to be on the device directly. A remote connection to the SQL database as a root user will be rejected.

6. Now one of the final options is to “Remove test database and access to it?“, to this type Y and press Enter.

This final option removes some test data that is included with a default installation of MySQL. These are only there for testing purposes.

7. Now with our MYSQL installation far more secure, let’s go ahead and log into it by running the following command on our Raspberry Pi.

Remember to have your MYSQL password handy, as you will need to enter it shortly.

mysql -u root -p

8. Now that we are logged into the MYSQL client we can now start off by creating a new database which Gitea will store its data.

To do this just run the following command within the MYSQL client, this will create a new database called gitea.

CREATE DATABASE gitea;

9. With the gitea database now created we can now go ahead and create a user for this database.

We will be naming this user gitea, make sure you replace “ENTERPASSWORD” with your password.

Make sure this password is different to your root password and is secure.

GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'ENTERPASSWORD';

10. You by now should have created a new gitea database, and created a new gitea user that has all privileges on the Gitea database.

To ensure this is all loaded into MYSQL, we need to flush the privileges table.

FLUSH PRIVILEGES;

11. Finally, quit out of the MYSQL client by typing in the following command.

exit

12. Now that we have everything set up and also have MYSQL all configured with a new database and user we can now actually install Gitea to the Raspberry Pi.

 Installing Gitea to the Raspberry Pi

1.  To start off for installing Raspberry Pi Gitea, lets first switch to the “git” user that we created earlier, we will perform the next few steps within it.

To switch to this user use the following command on your Raspberry Pi.

sudo su git

If for some reason you can no longer access your Raspberry Pi through SSH you can physically connect a keyboard and mouse to revert the PasswordAuthentication setting change and then refollow the tutorial.

2. Let’s now change into the home directory for the Git user, as this is where we will be creating folders and downloading the Gitea binary for our device.

Use the following command on your Pi to switch directories.

cd ~

3. Creating the folder we need is dead easy, just type the following command into the terminal on your Raspberry Pi.

mkdir gitea

4. Now we need to switch to our new folder and download Gitea itself to our Raspberry Pi.

We can do this by running the following command on our Raspberry Pi.

While we will try to ensure we have the latest version here, you can always go to Gitea’s official download website to check for newer versions of the program. Just place the URL below with a newer version, if one exists.

cd gitea
wget https://dl.gitea.io/gitea/1.4.0/gitea-1.4.0-linux-arm-7 -O gitea

5. Let’s now give execution rights to the file by entering the following command.

Giving the file execution permissions will allow us to use a service file to run it.

chmod +x gitea

6. Now that we have downloaded Gitea to our Raspberry Pi let’s go ahead and now create a service for it.

This service will allow us to have Raspberry Pi Gitea launched automatically at startup and will enable us to stop and restart it easily.

Run the following command on your Raspberry Pi to begin writing the service file.

sudo nano /etc/systemd/system/gitea.service

7. Within this file, we need to enter the following lines.

These lines tell the service manager how to handle the service, where to start the application and what user to run it under.

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target

[Service]
# Modify these two values ​​and uncomment them if you have
# repos with lots of files and get to HTTP error 500 because of that
###
# LimitMEMLOCK=infinity
# LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/gitea
ExecStart=/home/git/gitea/gitea web
Restart=always
Environment=USER=git 
HOME=/home/git

[Install]
WantedBy=multi-user.target

8. Once you have entered everything into the service file and are sure everything is correct, we can save it by pressing CTRL + X then Y and finally pressing ENTER.

9. Finally, let’s enable our Gitea service and start it up by running the following command on our Raspberry Pi.

 

This service will start up Gitea so we will be able to begin the process of configuring it.

sudo systemctl enable gitea.service
sudo systemctl start gitea.service

 Setting up Gitea on the Raspberry Pi

1. Now that we have installed and setup MYSQL and installed Gitea itself we can proceed to configure and set up Gitea itself.

To do this, you will need to have your Raspberry Pi’s IP address handy.

In a web browser go to your Raspberry Pi’s IP Address followed by :3000. We have an example of a valid URL below.

http://192.168.0.143:3000

2. When you go to your Raspberry Pi’s IP Address followed by :3000 you should be initially greeted with the screen below.

This screen allows you to configure everything you might need for setting up Gitea such as changing the domain name, the HTTP Port the domain name and numerous other things.

The first thing we are going to deal with though is the database settings, for this you will need to have the password you set handy.

 

If you followed our guide correctly, you can keep user and database name the same.

Raspberry Pi Gitea Install Screen

 

3. Scroll down till you see a setting for the Domain (1.), and Application URL (2.) These are quite important to set as they can create a very broken version of Gitea if they are set incorrectly.

You can use your Raspberry Pi’s local IP address such as 192.168.0.143. It’s recommended to use your local IP address instead of localhost as it allows other devices on the network to interact with Gitea.

Alternatively, you could use your external IP address or a domain name with proper port forwarding. For example, you could use something like git.pimylifeup.com which is pointed towards your Raspberry Pi’s IP address. Of course, to do this, you will require a static IP address.

Next, you need to use what you set for the Domain (1.) to replace “localhost” in the Application URL (2.)

Once you have set everything, you can go ahead and press the “Install Gitea” button located at the bottom of the web page.

Gitea Set Domain and Install

 

4. Now is a perfect time to grab a cup of coffee as the installation process of Gitea can take considerable time to complete.

Once the installation process has completed, your web browser will be redirected to the login page as shown below.

Now all you have to do is register an account, then you will have Gitea up and running perfectly.

Take some time to explore its interface and learn the ropes. If you are familiar with GitHub, you should be familiar with this.

Raspberry Pi Gitea Login Screen

We hope by the end of this Raspberry Pi Gitea tutorial you have setup Gitea successfully on your Raspberry Pi. If you have any thoughts, feedback or anything else then be sure to head over to the forums.

Linux raspberrypi 6.12.34+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.34-1+rpt1~bookworm (2025-06-26) aarch64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sat Aug 2 22:18:37 2025 from 192.168.163.80 w@raspberrypi:~ $ pip install dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ conda create -n dronepy27 python=2.7 -bash: conda: command not found w@raspberrypi:~ $ conda create -n dronepy27 python=2.7 -bash: conda: command not found w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ ^C w@raspberrypi:~ $ sudo apt-get install python2.7 Reading package lists... Done Building dependency tree... Done Reading state information... Done Note, selecting 'libpython2.7:armhf' for regex 'python2.7' The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo pip install dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ sudo apt-get install python-pip python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-pip' has no installation candidate E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev python-py Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python-py w@raspberrypi:~ $ cd w@raspberrypi:~ $ sudo apt-get install python-pip Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-pip is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python3-pip E: Package 'python-pip' has no installation candidate w@raspberrypi:~ $ sudo apt-get install python-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done Package python-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: python-dev-is-python3 E: Package 'python-dev' has no installation candidate w@raspberrypi:~ $ sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev python-py Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python-py w@raspberrypi:~ $ sudo apt update Hit:1 https://packages.microsoft.com/repos/code stable InRelease Hit:2 http://archive.raspberrypi.com/debian bookworm InRelease Hit:3 http://deb.debian.org/debian bookworm InRelease Hit:4 http://deb.debian.org/debian-security bookworm-security InRelease Get:5 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB] Fetched 55.4 kB in 13s (4,374 B/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 4 packages can be upgraded. Run 'apt list --upgradable' to see them. w@raspberrypi:~ $ sudo apt install python3-pip python3-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done python3-pip is already the newest version (23.0.1+dfsg-1+rpt1). python3-dev is already the newest version (3.11.2-1+b1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ sudo apt install python-is-python3 Reading package lists... Done Building dependency tree... Done Reading state information... Done python-is-python3 is already the newest version (3.11.2-1+deb12u1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ sudo pip install dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ ^C w@raspberrypi:~ $ pip --version pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11) w@raspberrypi:~ $ sudo apt install -y \ > build-essential \ > python3-dev \ libxml2-dev \ libxslt1-dev \ libgeos-dev \ libproj-dev \ libssl-dev \ zlib1g-dev \ libffi-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package w@raspberrypi:~ $ sudo apt update sudo apt install -y \ build-essential \ python3-dev \ libxml2-dev \ libxslt1-dev \ libgeos-dev \ libproj-dev \ libssl-dev \ zlib1g-dev \ libffi-dev Hit:1 https://packages.microsoft.com/repos/code stable InRelease Hit:2 http://deb.debian.org/debian bookworm InRelease Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease Hit:4 http://deb.debian.org/debian bookworm-updates InRelease Hit:5 http://archive.raspberrypi.com/debian bookworm InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 4 packages can be upgraded. Run 'apt list --upgradable' to see them. Reading package lists... Done Building dependency tree... Done Reading state information... Done build-essential is already the newest version (12.9). python3-dev is already the newest version (3.11.2-1+b1). libxml2-dev is already the newest version (2.9.14+dfsg-1.3~deb12u2). libxslt1-dev is already the newest version (1.1.35-1+deb12u1). libssl-dev is already the newest version (3.0.17-1~deb12u1). zlib1g-dev is already the newest version (1:1.2.13.dfsg-1+rpt1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: libcurl4-gnutls-dev libdeflate-dev libgeos-c1v5 libgeos3.11.1 libjbig-dev libjpeg-dev libjpeg62-turbo-dev liblerc-dev liblzma-dev libproj25 libsqlite3-dev libtiff-dev libtiffxx6 libwebp-dev libzstd-dev proj-data Suggested packages: libcurl4-doc libgnutls28-dev libidn-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev libgdal-doc liblzma-doc proj-bin sqlite3-doc The following NEW packages will be installed: libcurl4-gnutls-dev libdeflate-dev libffi-dev libgeos-c1v5 libgeos-dev libgeos3.11.1 libjbig-dev libjpeg-dev libjpeg62-turbo-dev liblerc-dev liblzma-dev libproj-dev libproj25 libsqlite3-dev libtiff-dev libtiffxx6 libwebp-dev libzstd-dev proj-data 0 upgraded, 19 newly installed, 0 to remove and 4 not upgraded. Need to get 11.9 MB of archives. After this operation, 43.5 MB of additional disk space will be used. Get:1 http://deb.debian.org/debian bookworm/main arm64 libcurl4-gnutls-dev arm64 7.88.1-10+deb12u12 [472 kB] Get:2 http://deb.debian.org/debian bookworm/main arm64 libdeflate-dev arm64 1.14-1 [50.0 kB] Get:3 http://deb.debian.org/debian bookworm/main arm64 libffi-dev arm64 3.4.4-1 [56.0 kB] Get:4 http://deb.debian.org/debian bookworm/main arm64 libgeos3.11.1 arm64 3.11.1-1 [683 kB] Get:5 http://deb.debian.org/debian bookworm/main arm64 libgeos-c1v5 arm64 3.11.1-1 [75.6 kB] Get:6 http://deb.debian.org/debian bookworm/main arm64 libgeos-dev arm64 3.11.1-1 [52.4 kB] Get:7 http://deb.debian.org/debian bookworm/main arm64 libjbig-dev arm64 2.1-6.1 [29.9 kB] Get:8 http://deb.debian.org/debian bookworm/main arm64 libjpeg62-turbo-dev arm64 1:2.1.5-2 [292 kB] Get:9 http://deb.debian.org/debian bookworm/main arm64 libjpeg-dev arm64 1:2.1.5-2 [71.8 kB] Get:10 http://deb.debian.org/debian bookworm/main arm64 liblerc-dev arm64 4.0.0+ds-2 [146 kB] Get:11 http://deb.debian.org/debian bookworm/main arm64 liblzma-dev arm64 5.4.1-1 [255 kB] Get:12 http://deb.debian.org/debian bookworm/main arm64 proj-data all 9.1.1-1 [6,212 kB] Get:13 http://deb.debian.org/debian bookworm/main arm64 libproj25 arm64 9.1.1-1+b1 [1,102 kB] Get:14 http://deb.debian.org/debian bookworm/main arm64 libsqlite3-dev arm64 3.40.1-2+deb12u1 [979 kB] Get:15 http://deb.debian.org/debian bookworm/main arm64 libzstd-dev arm64 1.5.4+dfsg2-5 [317 kB] Get:16 http://deb.debian.org/debian bookworm/main arm64 libwebp-dev arm64 1.2.4-0.2+deb12u1 [377 kB] Get:17 http://deb.debian.org/debian bookworm/main arm64 libtiffxx6 arm64 4.5.0-6+deb12u2 [144 kB] Get:18 http://deb.debian.org/debian bookworm/main arm64 libtiff-dev arm64 4.5.0-6+deb12u2 [441 kB] Get:19 http://deb.debian.org/debian bookworm/main arm64 libproj-dev arm64 9.1.1-1+b1 [128 kB] Fetched 11.9 MB in 11min 56s (16.6 kB/s) Selecting previously unselected package libcurl4-gnutls-dev:arm64. (Reading database ... 157355 files and directories currently installed.) Preparing to unpack .../00-libcurl4-gnutls-dev_7.88.1-10+deb12u12_arm64.deb ... Unpacking libcurl4-gnutls-dev:arm64 (7.88.1-10+deb12u12) ... Selecting previously unselected package libdeflate-dev:arm64. Preparing to unpack .../01-libdeflate-dev_1.14-1_arm64.deb ... Unpacking libdeflate-dev:arm64 (1.14-1) ... Selecting previously unselected package libffi-dev:arm64. Preparing to unpack .../02-libffi-dev_3.4.4-1_arm64.deb ... Unpacking libffi-dev:arm64 (3.4.4-1) ... Selecting previously unselected package libgeos3.11.1:arm64. Preparing to unpack .../03-libgeos3.11.1_3.11.1-1_arm64.deb ... Unpacking libgeos3.11.1:arm64 (3.11.1-1) ... Selecting previously unselected package libgeos-c1v5:arm64. Preparing to unpack .../04-libgeos-c1v5_3.11.1-1_arm64.deb ... Unpacking libgeos-c1v5:arm64 (3.11.1-1) ... Selecting previously unselected package libgeos-dev. Preparing to unpack .../05-libgeos-dev_3.11.1-1_arm64.deb ... Unpacking libgeos-dev (3.11.1-1) ... Selecting previously unselected package libjbig-dev:arm64. Preparing to unpack .../06-libjbig-dev_2.1-6.1_arm64.deb ... Unpacking libjbig-dev:arm64 (2.1-6.1) ... Selecting previously unselected package libjpeg62-turbo-dev:arm64. Preparing to unpack .../07-libjpeg62-turbo-dev_1%3a2.1.5-2_arm64.deb ... Unpacking libjpeg62-turbo-dev:arm64 (1:2.1.5-2) ... Selecting previously unselected package libjpeg-dev:arm64. Preparing to unpack .../08-libjpeg-dev_1%3a2.1.5-2_arm64.deb ... Unpacking libjpeg-dev:arm64 (1:2.1.5-2) ... Selecting previously unselected package liblerc-dev:arm64. Preparing to unpack .../09-liblerc-dev_4.0.0+ds-2_arm64.deb ... Unpacking liblerc-dev:arm64 (4.0.0+ds-2) ... Selecting previously unselected package liblzma-dev:arm64. Preparing to unpack .../10-liblzma-dev_5.4.1-1_arm64.deb ... Unpacking liblzma-dev:arm64 (5.4.1-1) ... Selecting previously unselected package proj-data. Preparing to unpack .../11-proj-data_9.1.1-1_all.deb ... Unpacking proj-data (9.1.1-1) ... Selecting previously unselected package libproj25:arm64. Preparing to unpack .../12-libproj25_9.1.1-1+b1_arm64.deb ... Unpacking libproj25:arm64 (9.1.1-1+b1) ... Selecting previously unselected package libsqlite3-dev:arm64. Preparing to unpack .../13-libsqlite3-dev_3.40.1-2+deb12u1_arm64.deb ... Unpacking libsqlite3-dev:arm64 (3.40.1-2+deb12u1) ... Selecting previously unselected package libzstd-dev:arm64. Preparing to unpack .../14-libzstd-dev_1.5.4+dfsg2-5_arm64.deb ... Unpacking libzstd-dev:arm64 (1.5.4+dfsg2-5) ... Selecting previously unselected package libwebp-dev:arm64. Preparing to unpack .../15-libwebp-dev_1.2.4-0.2+deb12u1_arm64.deb ... Unpacking libwebp-dev:arm64 (1.2.4-0.2+deb12u1) ... Selecting previously unselected package libtiffxx6:arm64. Preparing to unpack .../16-libtiffxx6_4.5.0-6+deb12u2_arm64.deb ... Unpacking libtiffxx6:arm64 (4.5.0-6+deb12u2) ... Selecting previously unselected package libtiff-dev:arm64. Preparing to unpack .../17-libtiff-dev_4.5.0-6+deb12u2_arm64.deb ... Unpacking libtiff-dev:arm64 (4.5.0-6+deb12u2) ... Selecting previously unselected package libproj-dev:arm64. Preparing to unpack .../18-libproj-dev_9.1.1-1+b1_arm64.deb ... Unpacking libproj-dev:arm64 (9.1.1-1+b1) ... Setting up libzstd-dev:arm64 (1.5.4+dfsg2-5) ... Setting up proj-data (9.1.1-1) ... Setting up libgeos3.11.1:arm64 (3.11.1-1) ... Setting up libproj25:arm64 (9.1.1-1+b1) ... Setting up libjbig-dev:arm64 (2.1-6.1) ... Setting up libcurl4-gnutls-dev:arm64 (7.88.1-10+deb12u12) ... Setting up libffi-dev:arm64 (3.4.4-1) ... Setting up libwebp-dev:arm64 (1.2.4-0.2+deb12u1) ... Setting up libsqlite3-dev:arm64 (3.40.1-2+deb12u1) ... Setting up libjpeg62-turbo-dev:arm64 (1:2.1.5-2) ... Setting up libgeos-c1v5:arm64 (3.11.1-1) ... Setting up liblerc-dev:arm64 (4.0.0+ds-2) ... Setting up liblzma-dev:arm64 (5.4.1-1) ... Setting up libtiffxx6:arm64 (4.5.0-6+deb12u2) ... Setting up libdeflate-dev:arm64 (1.14-1) ... Setting up libjpeg-dev:arm64 (1:2.1.5-2) ... Setting up libtiff-dev:arm64 (4.5.0-6+deb12u2) ... Setting up libgeos-dev (3.11.1-1) ... Setting up libproj-dev:arm64 (9.1.1-1+b1) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+rpt2+deb12u12) ... w@raspberrypi:~ $ sudo apt install python3-dronekit Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python3-dronekit w@raspberrypi:~ $ sudo pip3 install --no-cache-dir --upgrade setuptools wheel error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ sudo pip3 install --no-cache-dir dronekit error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. w@raspberrypi:~ $ sudo apt install -y build-essential python3-dev python3-venv Reading package lists... Done Building dependency tree... Done Reading state information... Done build-essential is already the newest version (12.9). python3-dev is already the newest version (3.11.2-1+b1). python3-venv is already the newest version (3.11.2-1+b1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. w@raspberrypi:~ $ python3 -m venv --system-site-packages ~/dronekit_safe_env w@raspberrypi:~ $ source ~/dronekit_safe_env/bin/activate (dronekit_safe_env) w@raspberrypi:~ $ pip install --no-cache-dir --upgrade pip setuptools wheel cython Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: pip in ./dronekit_safe_env/lib/python3.11/site-packages (23.0.1) Collecting pip Downloading pip-25.2-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 21.6 kB/s eta 0:00:00 Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (66.1.1) Collecting setuptools Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 23.3 kB/s eta 0:00:00 Requirement already satisfied: wheel in /usr/lib/python3/dist-packages (0.38.4) Collecting wheel Downloading https://www.piwheels.org/simple/wheel/wheel-0.45.1-py3-none-any.whl (72 kB) ━━━━━━━━━━━━━━━━━━ 72.5/72.5 kB 119.9 kB/s eta 0:00:00 Collecting cython Downloading cython-3.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.1 MB) ━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 24.2 kB/s eta 0:00:00 Installing collected packages: wheel, setuptools, pip, cython Attempting uninstall: wheel Found existing installation: wheel 0.38.4 Not uninstalling wheel at /usr/lib/python3/dist-packages, outside environment /home/w/dronekit_safe_env Can't uninstall 'wheel'. No files were found to uninstall. Attempting uninstall: setuptools Found existing installation: setuptools 66.1.1 Uninstalling setuptools-66.1.1: Successfully uninstalled setuptools-66.1.1 Attempting uninstall: pip Found existing installation: pip 23.0.1 Uninstalling pip-23.0.1: Successfully uninstalled pip-23.0.1 Successfully installed cython-3.1.2 pip-25.2 setuptools-80.9.0 wheel-0.45.1 (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': cd pymavlink Password for 'https://cd%20pymavlink@github.com': remote: Invalid username or token. Password authentication is not supported for Git operations. fatal: Authentication failed for 'https://github.com/mavlink/pymavlink.git/' (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git cd pymavlink python setup.py bdist_wheel pip install dist/pymavlink-*.whl --no-cache-dir cd .. Cloning into 'pymavlink'... Username for 'https://github.com': Password for 'https://github.com': remote: Repository not found. fatal: Authentication failed for 'https://github.com/mavlink/pymavlink.git/' -bash: cd: pymavlink: No such file or directory python: can't open file '/home/w/setup.py': [Errno 2] No such file or directory WARNING: Requirement 'dist/pymavlink-*.whl' looks like a filename, but the file does not exist ERROR: Invalid wheel filename (wrong number of parts): 'pymavlink-*' (dronekit_safe_env) w@raspberrypi:/home $ git clone https://github.com/mavlink/pymavlink.git fatal: could not create work tree dir 'pymavlink': Permission denied (dronekit_safe_env) w@raspberrypi:/home $ cd ~ (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': cd pymavlink Password for 'https://cd%20pymavlink@github.com': (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': ^[[D^[[D^[[D^[[D^[[D^[[D^[[D^^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3~^[[3^[[C^[[C^[[C^[[C^C (dronekit_safe_env) w@raspberrypi:~ $ git clone https://github.com/mavlink/pymavlink.git Cloning into 'pymavlink'... Username for 'https://github.com': w Password for 'https://w@github.com': remote: Invalid username or token. Password authentication is not supported for Git operations. fatal: Authentication failed for 'https://github.com/mavlink/pymavlink.git/' (dronekit_safe_env) w@raspberrypi:~ $ rm -rf pymavlink (dronekit_safe_env) w@raspberrypi:~ $ sudo apt install -y \ build-essential \ python3-dev \ libxml2-dev \ libxslt1-dev \ libgeos-dev \ libproj-dev \ libssl-dev \ zlib1g-dev \ libffi-dev Reading package lists... Done Building dependency tree... Done Reading state information... Done build-essential is already the newest version (12.9). python3-dev is already the newest version (3.11.2-1+b1). libxml2-dev is already the newest version (2.9.14+dfsg-1.3~deb12u2). libxslt1-dev is already the newest version (1.1.35-1+deb12u1). libgeos-dev is already the newest version (3.11.1-1). libproj-dev is already the newest version (9.1.1-1+b1). libssl-dev is already the newest version (3.0.17-1~deb12u1). zlib1g-dev is already the newest version (1:1.2.13.dfsg-1+rpt1). libffi-dev is already the newest version (3.4.4-1). The following packages were automatically installed and are no longer required: libbasicusageenvironment1 libgroupsock8 liblivemedia77 python3-v4l2 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir --upgrade setuptools wheel error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $ sudo apt install python3-dronekit Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python3-dronekit (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir Cython numpy error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir --upgrade setuptools wheel error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $ source ~/dronekit_safe_env/bin/activate (dronekit_safe_env) w@raspberrypi:~ $ pip install --no-cache-dir --upgrade setuptools wheel Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (80.9.0) Requirement already satisfied: wheel in ./dronekit_safe_env/lib/python3.11/site-packages (0.45.1) WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /simple/wheel/ WARNING: Error parsing dependencies of send2trash: Expected matching RIGHT_PARENTHESIS for LEFT_PARENTHESIS, after version specifier sys-platform (=="darwin") ; extra == 'objc' ~^ (dronekit_safe_env) w@raspberrypi:~ $ pip install --no-cache-dir --upgrade setuptools wheel Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (80.9.0) Requirement already satisfied: wheel in ./dronekit_safe_env/lib/python3.11/site-packages (0.45.1) WARNING: Error parsing dependencies of send2trash: Expected matching RIGHT_PARENTHESIS for LEFT_PARENTHESIS, after version specifier sys-platform (=="darwin") ; extra == 'objc' ~^ (dronekit_safe_env) w@raspberrypi:~ $ python3 -m venv ~/dronekit_safe_env (dronekit_safe_env) w@raspberrypi:~ $ source ~/dronekit_safe_env/bin/activate (dronekit_safe_env) w@raspberrypi:~ $ pip install --upgrade pip setuptools wheel Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already satisfied: pip in ./dronekit_safe_env/lib/python3.11/site-packages (25.2) Requirement already satisfied: setuptools in ./dronekit_safe_env/lib/python3.11/site-packages (80.9.0) Requirement already satisfied: wheel in ./dronekit_safe_env/lib/python3.11/site-packages (0.45.1) (dronekit_safe_env) w@raspberrypi:~ $ pip list | grep -E "setuptools|wheel" setuptools 80.9.0 wheel 0.45.1 (dronekit_safe_env) w@raspberrypi:~ $ sudo pip3 install --no-cache-dir Cython numpy error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. For more information visit http://rptl.io/venv note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification. (dronekit_safe_env) w@raspberrypi:~ $ ssh-keygen -t ed25519 -C "your_email@example.com" Generating public/private ed25519 key pair. Enter file in which to save the key (/home/w/.ssh/id_ed25519): ssh-keygen -t ed25519 -C "your_email@example.com"^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[D^[[ Created directory '/home/w/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/w/.ssh/id_ed25519 Your public key has been saved in /home/w/.ssh/id_ed25519.pub The key fingerprint is: SHA256:siXsZrFdnFoU/noUOttztnIy32zE0lVdCmymQJSVpfs your_email@example.com The key's randomart image is: +--[ED25519 256]--+ | oooo+o +| | o..o+. .o| | .++. . .| | . o.= . .| | = S O o o.| | . O + B . +| | * o o E oo | | o .++.+.| | *o.o| +----[SHA256]-----+ (dronekit_safe_env) w@raspberrypi:~ $ (dronekit_safe_env) w@raspberrypi:~ $ (dronekit_safe_env) w@raspberrypi:~ $ (dronekit_safe_env) w@raspberrypi:~ $ (dronekit_safe_env) w@raspberrypi:~ $ (dronekit_safe_env) w@raspberrypi:~ $ (dronekit_safe_env) w@raspberrypi:~ $ (dronekit_safe_env) w@raspberrypi:~ $ ssh-keygen -t ed25519 -C "2011595779@qq.com" Generating public/private ed25519 key pair. Enter file in which to save the key (/home/w/.ssh/id_ed25519): /home/w/.ssh/id_ed25519 already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/w/.ssh/id_ed25519 Your public key has been saved in /home/w/.ssh/id_ed25519.pub The key fingerprint is: SHA256:f20VoIwPrfQAjKttlC+ZAdS5lduB6CB2ZUm8aEB25qM 2011595779@qq.com The key's randomart image is: +--[ED25519 256]--+ |.o.+=+*.o . | |.+++.B =..+ . . | |. +o= * o=.+ . | | .o.O ...* .| | E. + = S. o .| | . * . . . . | | . . . . o | | . . | | | +----[SHA256]-----+ (dronekit_safe_env) w@raspberrypi:~ $ eval "$(ssh-agent -s)" Agent pid 3357 (dronekit_safe_env) w@raspberrypi:~ $ cat ~/.ssh/id_ed25519.pub ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMN5PMRTtM9ADoHHWnKG/A4bPdySkravBSTdhP17IgCS 2011595779@qq.com (dronekit_safe_env) w@raspberrypi:~ $ ssh -T git@github.com The authenticity of host 'github.com (20.205.243.166)' can't be established. ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. git@github.com: Permission denied (publickey). (dronekit_safe_env) w@raspberrypi:~ $ ^C (dronekit_safe_env) w@raspberrypi:~ $
08-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值