Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

complete C/C++ dev. env installation #303

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions tech/database/mariadb/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,3 +218,19 @@ $ dnf install mariadb-oqgraph-engine
In Fedora, MariaDB server is available also as a dynamic library, that can be handy in some applications. This library (`libmysqld.so`) is available in the package `mariadb-embedded` and header files for building an application against this library are available in the package `mariadb-embedded-devel`.

However the use of the embedded library is discouraged. MySQL 8 dropped the embedded library and I expect MariaDB to go in the same direction.

# Troubleshooting:
* Fix Access denied for user 'root'@'localhost' for phpMyAdmin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would go to a different section, though. Probably to Web Apps or to PHP-related stuff (did not look up that now, please give it a look yourself).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the issue is releted to mysql/mariadb not php so I added on the mariadb section. And the webapp section is not ready.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then please create a stand-alone page in MariaDB subsection. We try to make it as simple as possible and not everyone will use phpMyAdmin.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove this then.


(Mysql tries to authenticate root using plugin, not password. You need to disable plugin usage for root)

```
$ sudo mysql -u root -p
```

```
[mysql]> use mysql;
[mysql]> update user set plugin='' where User='root';
[mysql]> flush privileges;
[mysql]> \q
```
11 changes: 8 additions & 3 deletions tech/database/sqlite/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,16 @@ $ sudo dnf install sqlite-devel sqlite-tcl sqlite-jdbc
## Graphical clients

The `sqlite` client shipped with the basic database engine is command line (CLI)
based. If you prefer an application with graphical user interface (GUI), install
the `sqliteman` package:
based. If you prefer an application with graphical user interface (GUI), you can install
the `sqliteman` package and `sqlitebrowser`:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind to elaborate at the diffirence between /usage of/ those two?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sqliteman is discontinued. The project is no longer developed. Last version, 1.2.0, was released in 2013.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then the unmaintained one should be omitted, in case they both provide the same functionallity.
We should give user an an advice, not list all possible options.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May I remove the unmaintained 6 years old software (sqliteman) ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing. Let's recommend what's best (TM).


```
$ sudo dnf install sqliteman
```
or
```
$ sudo dnf install sqlitebrowser
```

## Working with SQLite

Expand All @@ -44,13 +48,14 @@ $ sqlite3 hello-world.db
After executing this command, you will be greeted with a SQLite prompt and can
now insert the SQL commands to execute.

If you prefer using GUI, the [Sqliteman][sqliteman] application enables you to
If you prefer using GUI, the [Sqliteman][sqliteman] or [Sqlitebrowser][sqlitebrowser] application enables you to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you keep one, as per previous comment?

construct your SQL queries using visual tool.

If you are new to SQL databases and would like to learn more, you can visit a
[W3CSchools SQL tutorial][sql-tut], which should give you a nice head start.

[sqliteman]: http://sqliteman.yarpen.cz/ "Sqliteman home page"
[sqlitebrowser]: https://sqlitebrowser.org/ "Sqlitebrowser home page"
[sql-tut]: http://www.w3schools.com/sql/default.asp "W3CSchools SQL Tutorial"

## Getting help with SQLite
Expand Down
7 changes: 7 additions & 0 deletions tech/languages/c/cpp_installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ To view all the options that G++ can use, visit the manual page by typing:

You will see that the manual page is identical with the one shown for GCC.


## To install complete C/C++ development environment:

```
# sudo dnf groupinstall "C Development Tools and Libraries" "Development Tools"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure C/Dev+Dev/tools group and GCC are that much related. It's more like bunch of libraries and debug tools for every compiler/lang. Would you mind to elaborate?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I mentioned it as Complete developement environment it will install bunch of libraries and debug tools and the user don't have to see xyz tool is missing. Its just an option if anyone need them all in one setup.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it does, but it's not needed for developing C/C++ apps. This should go into standalone page, because otherwise it would go into almost all compiled languages pages.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay then

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you remove it then?

```

## CLANG installation

Clang works both for C++ and C and the installation is the same as for C:
Expand Down
14 changes: 14 additions & 0 deletions tech/languages/php/php-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,17 @@ You can start PHP development server by typing this in your project's root:
$ sudo php --server localhost:8080 --docroot .
```
Server will be accessible on `http://localhost:8080/`.


## Running your PHP Applications in Docker

To install docker in your system, see [docker installation guide](https://developer.fedoraproject.org/tools/docker/about.html) for more details.

After installing docker on your machine, you can start a web server with one command. The following will download a fully functional Apache installation with the latest PHP version, map `/path/to/your/php/files` to the document root, which you can view at `http://localhost:8080`

```
$ docker run -d --name my-php-webserver -p 8080:80 -v /path/to/your/php/files:/var/www/html/ php:apache

```

This will initialize and launch your container. `-d` makes it runs in the background. To stop and start it, simply run `docker stop my-php-webserver` and `docker start my-php-webserver` (the other parameters are not needed again)
56 changes: 56 additions & 0 deletions tech/languages/python/django-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,62 @@ When you finish your work, just deactivate the virtual environment.
(project_venv) $ deactivate
```


## How to install Django using pipenv
Create a new project folder and open it.

```
$ mdkir my_project
$ cd my_project
```
then

```
$ pipenv install django
```

It will automatically create a virtual environment for the project. It will also create a `Pipfile` and a `Pipfile.lock` and will install `django` latest version with required dependencies.

#### To activate the virtual environment just run

```
$ pipenv shell
```

#### Check the requirements or installed packages

```
(my_project) $ pipenv lock -r
```

That's all, you have sucessfully installed Django in the virtual environment using `pipenv`. Now you can start working on your project as described in the above example.

#### When you finish your work, just `deactivate` the virtual environment.

```
(my_project) $ exit
```

#### Run command in Pipenv environment without activating pipenv environment

```
$ pipenv run python
```

### WHEN PROJECT IS REAY TO MOVE TO PRODUCTION:

#### Update the `Pipfile.lock`

```
$ pipenv lock
```

#### Install in the Production environment (Install from `Pipfile.lock` , ignore pipfile)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
#### Install in the Production environment (Install from `Pipfile.lock` , ignore pipfile)
#### Install in the Production environment (Install from `Pipfile.lock`, ignore Pipfile)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pipenv run is used to run commands without activating the virtual environment and pipenv shell is used to acticvate the virtual environment, isn't it ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thats what I added :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pipfile should be capital P then, right? As per the suggested change...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right


```
$ pipenv install --ignore-pipfile
```

### What next?

* [Django Documentation](https://docs.djangoproject.com/)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we have any reference for pipenv?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not really yet, sorry

Copy link
Contributor

@pvalena pvalena Jun 2, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not really yet, sorry

Do we have it, now? :)

Expand Down